-
Chapter 1.2 Polygon mesh3차원 그래픽스/Polygon mesh 2019. 2. 11. 23:08
이 문서는 개인 공부용으로 쓰였습니다.
- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현)
Chapter 1.2 Polygon mesh
0. 정의
- GPU는 폴리곤 메쉬 처리에 최적화되어 있다.
폴리곤 메쉬의 정점들은 부드러운 곡면을 샘플링한 점들에 불과하다.
폴리곤 메쉬는 정확한 표현법이 아닌 근사적 표현법이다.
OpenGL - 볼록 폴리곤 (평면성과 볼록성) : 처리 속도를 빠르게 하기 위해
Direct3D - 삼각형 폴리곤 (삼각형 메쉬)
_ 메쉬의 해상도가 올라갈수록 본래의 곡면과 흡사해지지만
메쉬를 처리하기 위한 시간이 증가하여 효율성은 떨어지게 된다.
_ 저해상도의 메쉬를 고해상도로 변환하는 과정은 세분화
_ 반대의 과정은 간략화라 한다.
1. 폴리곤 메쉬 표현 기법
- 삼각형 메쉬를 표현하는 가장 단순한 방법은
삼각형을 구성하는 세 개의 정점을 순서대로 나열하는 것이다.
_ 이 표현법은 삼각형 리스트라 부르고, 정점들이 저장된 메모리 공간은 정점 버퍼라 부른다.
t1 (0,1) (0,0) (1,1)
t2 (0,0) (1,0) (1,1)
t3 (1,1) (1,1) (2,1)
상당히 직관적이지만, 데이터를 중복해 저장한다는 단점이 있다.
_ 인덱스 버퍼
정점 버퍼에 정점들을 중복 없이 저장하고, 이들을 가리키는 인덱스의 별도로 저장.
정점 위치뿐만 아니라 정점의 노멀, 텍스처 좌표 등 다양한 데이터가 포함된다.
0 (0,1) t1 (0,1,2)
1 (0,0) t2 (1,3,2)
2 (1,1) t3 (2,3,4)
3 (1,0)
4 (2,1)
_ 삼각형 스트립
일련의 결합된 삼각형이다.
삼각형을 위해 세 개의 정점 처리가, 그 이후에는 삼각형당 하나의 정점처리를 한다.
렌더링 성능이 낮아, 사각형을 그릴 때는 삼각형 리스트보다 선호된다.
ACMR은 1로 수렴한다.
^(ACMR 정점의 평균개수는 삼각형당 캐쉬 미스 회수와 동일하다)
^(n개의 정점이 있다면 삼각형의 개수는 대략 2n이 된다.)
^(2n개의 삼각형을 위해 n개의 정점을 처리하여, 0.5에 수렴한다.)
2. 노멀 벡터
삼각형 노멀은 v1과 v2의 외적을 이용해 계산된다.
삼각형 노멀의 방향은 정점 순서에 따라 달라진다.
<p1, p2, p3>의 경우 정점이 반시계 방향 정렬
<p1, p3, p2>의 경우 정점이 시계 방향으로 정렬
_오른손 법칙에 따르면, 반시계 방향으로 정렬된 정점은 물체 표면에서 바깥쪽으로
컴퓨터 그래픽스에서 노멀은 물체 바깥을 향하게 하는 것이 관례이다.
_ 정점 노멀
해당 정점을 공유하는 삼각형들의 노멀의 평균으로 정의된다.
모델링 단계에서 계산되고 정점 버퍼에 저장되어 렌더링 단계로 넘겨진다.
'3차원 그래픽스 > Polygon mesh' 카테고리의 다른 글
Chapter 1.3 Coordinate (0) 2019.02.11 Chapter 1.1 게임 제작 파이프라인 (0) 2019.02.11