3차원 모델을 3차원 공간에 나타내기 위해선 모델의 점(Vertex)의 값을 알아야 합니다.
이러한 점들의 집합은 폴리곤(Polygon)이라고 합니다.
이때 게임에서는 삼각형을 최소 단위로 3D 폴리곤을 정의합니다.
이 정점 데이터들을 운반하는 자료구조를 Vertex Buffer라고 합니다.
그리고 점점들의 인덱스를 저장하고 있는 버퍼는 Index Buffer라고 합니다.
예를 들면, 게임에서 사각형을 그리려면 최소 단위인 삼각형을 기반으로 그려야 하기 때문에 2개의 삼각형의 정점 6개가 필요합니다.
이러한 경우 인덱스 버퍼는 정점은 4개만 두고 정점의 위치를 가져와서 필요한 정점의 개수를 줄여주는 역할을 한다.
하지만 정점에는 좌표 데이터뿐만 아니라, 색, 법선, 텍스처좌표(UV) 등등 필요한 정보가 많기 때문에
한 정점이 가져야하는 데이터가 많아질수록 정점의 개수를 줄이는 것은 메모리 효율 측면에서도 많은 이점이 있습니다.
다시 정점 버퍼로 돌아와서 정점 버퍼는 정점들의 연속적인 메모리 구조에 불과하기 때문에
실제 GPU에서는 이러한 정점들을 사용하여 만들어야 할 도형정보(Primtive Topology)라고 합니다.
결론적으로 Input Assembler는 이러한 정점들의 데이터를 읽고, 삼각형과 같은 도형으로 조립하는 단계입니다.
'DirectX 11' 카테고리의 다른 글
DirectX 11 - Rasterization (0) | 2024.05.31 |
---|---|
DirectX 11 - Geometry Shader (0) | 2024.05.31 |
DirectX 11 - Tesselator (0) | 2024.05.31 |
DirectX 11 - Vertex Shader (2) | 2024.05.31 |
DirectX 11 - 렌더링 파이프라인 (0) | 2024.05.31 |