Polygon Mesh
구를 모델링하는 경우 두 가지 방식으로 구현할 수 있다
Implicit representation으로는 원의 방정식을 통해 구현한다
Explicit representation으로는 Polygon Mesh (특히, Triangle)를 통해 구현한다
모델링 툴에서는 Quad mesh를 일반적으로 사용하기 때문에
해당 Quad를 두 개의 Triangle로 변환해서 사용한다
완전하게 부드러운 구의 형태는 Implicit 방식이 더욱 가깝지만
GPU의 빠른 병렬 연산에 효율적인 Explicit 방식을 사용한다
LOD(Levels Of Detail)
모델을 폴리곤 메쉬의 정점 개수에 따라서 여러 버전을 만드는 것으로
멀리 있는지 가까이 있는지에 따라서 LOD를 적용한다
Vertex Array
Vertex Array에는 vertex pos, uv color, normal,... 등
다양한 정보가 들어가는 배열이다
Index Array
Vertex Array에서 중복되는 부분을 해결하기 위해 도입되었다
정점을 그리는 순서를 담는 배열이다
Surface Normal
오른손 법칙을 기반으로 외적을 통해서 노멀 벡터를 만들어내며
단위벡터이다
CCW(Counter-Clockwise)를 기반으로
CCW의 표면은 그려지고
CW의 표면은 그려지지 않는다
CCW에 맞게 그려지게 설정하는 함수는 아래와 같다
glEnable(GL_CULL_FACE);
Surface Normal의 평균
노멀 벡터를 부드럽게 만들어내기 위해서
근처의 노멀들의 평균을 내서 만들어낸다
매쉬의 obj파일
매쉬의 obj파일에는
vertex array와 vertex normal, index array에 대한 정보가 포함되어 있다
'게임 그래픽스 > [전북대] OpenGL' 카테고리의 다른 글
[OpenGL Note] 2D Transform (0) | 2024.04.12 |
---|---|
[OpenGL Note] 렌더링 파이프라인 (0) | 2024.04.12 |
[OpenGL Note] 기초 수학 (0) | 2024.04.11 |
[OpenGL Note] OpenGL 라이브러리와 작동 방식 (0) | 2024.04.10 |
[OpenGL Note] 컴퓨터 그래픽스 (0) | 2024.04.10 |