SniKuz 2024. 4. 2. 10:58

목차

 

Meshes

Boundary Representations - Meshes & Subdivision

Mesh란 물체의 표면을 샘플링한 점들과 그 점들을 연결해 만든 Polygon(triangle / quadrilateral)들로 표현한 것입니다.

* Tessellation / Triangulation : 표면을 polygon의 집합으로 나눈 것(현대 graphics API/ HW 들은 triangle 사용 최적화)

 

Mesh 표현

Mesh는 점들간 연결의 집합이니 기초적으로 각 점들에 대한 정보와 연결정보로 표현됩니다.

3D 렌더링 기본 단위로 표현되며, Primitive라 부르며 Primitive는 기초적인 Type을 이야기한다고 합니다.
종류는 일반적으로 OpenGL에서는 다음과 같습니다.

점, 선, GL_LINE_STRIP 점들을 잇는 라인, GL_LINE_LOOP : 루프, 감싸는 라인
삼각형, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, 
사각형, GL_QUAD_STRIP
GL_POLYGON  면

기본적으로는 점, 선, 선Strip, 삼각형, 삼각형Strip, 삼각형Fan 6가지 입니다.

 

 

Triangle Fan

중복된 점을 중심으로 주변 삼각형을 그리면 삼각형을 각각 그리는 것보다 vertex storage cost 감소 효과를 얻습니다.

 

 

Triangle Strip

마지막으로 사용된 정점 2개의 다음 정점을 연결하며, Triangle Fan처럼 삼각형을 각각 그리는 것보다 storage 감소 효과를 얻습니다. OpenGL은 CCW, CW, CCW, CW 회전 방향이 계속 바뀌는데 반해, DirectX는 시계방향을 유지한다고 합니다.

OpenGL

 

 

Level of Detail (LOD)

카메라와의 거리에 따라 멀리 떨어진 물체는 그 디테일에 상관 없이 잘 안보이는데 디테일이 너무 높다면 비효율적입니다.
그래서 거리, Level에 따라 디테일을 바꿔서 표현해 줄 수 있습니다.

* LOD생성 방법

여러 모델링에서 다 쓰일 수 있고 대표적으로 지형에서 LOD를 조절할 수 있습니다.
QuadTree, Binary Tree 등을 기반으로 작성할 수 있을 것 같습니다.

지형에 LOD를 조절하는걸 이해하기 좋은 영상 : https://www.youtube.com/watch?v=iRnmJAUhjks&t=2s