[CGs] Polygon Meshes

박원준·2023년 5월 9일
0

CGs

목록 보기
17/20

  • Polygon들을 서로 엮어서 망 형태로 구성해서 물체의 표면을 표현하는 방법

    • Polygon은 edge와 vertex들로 구성된다.
  • 최대 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 목록에 대한 포인터)


💻 Explicit Representation

  • 폴리곤을 구성하는 n개의 꼭지점을 차례대로 명시적으로 표현하는 방법

  • 각 Polygon은 꼭짓점 좌표 리스트로 표현한다

  • 꼭짓점은 순서대로 정의한다 : Polygon 조작할 때 꼭짓점의 순서

  • Edge는 연속하는 꼭짓점 사이에 존재하고, 마지막과 첫 꼭짓점 사이에 존재(폐영역 생성)

  • 하나의 Polygon에 대해서는 효율적이다. 하지만 문제는 Mesh일 경우에 생긴다

  • 단점

    • 공유되는 꼭짓점 좌표가 중복되어 저장되기 때문에 공간이 비효율적이다.

    • 공유되는 꼭짓점이나 Edge에 대한 명시적 표현이 없다.

    • 만약 꼭짓점을 드래그할 경우 같이 상호작용하는 Edge를 알 수 없으므로 리스트에서 찾아야 한다. 여기서 찾는것은 한 Polygon의 좌표값과 다른 모든 Polygon의 좌표값을 비교해야한다.


💻 Pointers to a Vertex List

  • Polygon은 각각의 Vertex를 가지고 Polygon Mesh의 Vertex List에 한번만 저장한다

  • 꼭짓점 좌표를 한번만 저장하므로 공간이 상당히 절약된다 (공간효율 상승)

  • 꼭짓점 좌표값이 바뀌어도 저장된 공간의 값만 바뀌므로 효율적이다

  • 반면에, Polygon의 공유 Edge와 공유 꼭짓점을 찾지 못해 여전히 두번씩 그리게 된다


💻 Pointers to an Edge List

  • Edge list에서

    • 🟥의 경우 edge를 구성하는 두 개의 꼭지점 좌표
    • 🟦의 경우 edge가 속한 polygon 정보
    • 🟫의 경우 공유 edge 확인용
  • Edge List에 대한 포인터로 생성하므로 한번만 Edge정보를 저장하면 된다

    • 공간 효율이 높아진다
  • 공유 Edge확인 가능하므로 중복 그리기 회피 가능하다

0개의 댓글