Polygon들을 서로 엮어서 망 형태로 구성해서 물체의 표면을 표현하는 방법
최대 2개의 Polygon(다각형)이 Edge를 공유하면서 Mesh(그물망)형태를 구성
Edge는 2개의 vertex(정점)을 잇고, Polygon은 폐쇄된 연속적인 Edge들이다
vertex(꼭짓점)은 적어도 두개의 Edge를 공유하고 모든 Edge는 Polygon의 부분이다
3가지 Polygon Mesh 묘사법
Explicit representation (명시적 표현법)
Pointers to a vertex list (꼭지점 목록에 대한 포인터)
Pointers to an edge list (edge 목록에 대한 포인터)
폴리곤을 구성하는 n개의 꼭지점을 차례대로 명시적으로 표현하는 방법
각 Polygon은 꼭짓점 좌표 리스트로 표현한다
꼭짓점은 순서대로 정의한다 : Polygon 조작할 때 꼭짓점의 순서
Edge는 연속하는 꼭짓점 사이에 존재하고, 마지막과 첫 꼭짓점 사이에 존재(폐영역 생성)
하나의 Polygon에 대해서는 효율적이다. 하지만 문제는 Mesh일 경우에 생긴다
단점
공유되는 꼭짓점 좌표가 중복되어 저장되기 때문에 공간이 비효율적이다.
공유되는 꼭짓점이나 Edge에 대한 명시적 표현이 없다.
만약 꼭짓점을 드래그할 경우 같이 상호작용하는 Edge를 알 수 없으므로 리스트에서 찾아야 한다. 여기서 찾는것은 한 Polygon의 좌표값과 다른 모든 Polygon의 좌표값을 비교해야한다.
Polygon은 각각의 Vertex를 가지고 Polygon Mesh의 Vertex List에 한번만 저장한다
꼭짓점 좌표를 한번만 저장하므로 공간이 상당히 절약된다 (공간효율 상승)
꼭짓점 좌표값이 바뀌어도 저장된 공간의 값만 바뀌므로 효율적이다
반면에, Polygon의 공유 Edge와 공유 꼭짓점을 찾지 못해 여전히 두번씩 그리게 된다
Edge list에서
Edge List에 대한 포인터로 생성하므로 한번만 Edge정보를 저장하면 된다
공유 Edge확인 가능하므로 중복 그리기 회피 가능하다