본문 바로가기

Library/Computer Graphics

D3D10 Pipeline : Input-Assembler Stage

D3D10의 각 파이프라인은 기능적인 면에서 스테이지라는 것으로 분류된다. D3D10 파이프라인의 첫 단계는 IA(Input-Assembler) 스테이지인데, 이 스테이지의 가장 큰 목적은 파이프라인의 다른 스테이지에서 효과적으로 데이터를 사용할 수 있도록 데이터를 가공하는 것이다. (* 블로그지기 : IA 스테이지는 그 이름 때문에 OpenGL의 프리미티브 어셈블리(Primitive Assembly) 단계와 비슷하게 느껴지지만, OpenGL의 프리미티브 어셈블리 단계는 버텍스 연산 이후에 일어나며, 주로 클리핑 처리를 담당한다는 면에서 D3D10의 IA 스테이지와 구별된다)

IA 스테이지는 버텍스들을 이미 정의되어 있는 D3D 프리미티브 타입으로 조합하는데, D3D10에서는 D3D9과 비교할 때 새롭게 추가된 지오메트리 쉐이더(geometry shader) 스테이지를 위해 몇 가지 새로운 프리미티브 타입들이 추가되었다. 새로운 프리미티브 타입들은 가까이 있는(adjacency) 프리미티브들에 대한 정보까지 포함할 수 있다. 이런 프리미티브 타입들의 인접 정보들은 지오메트리 쉐이더 스테이지 단계에서만 보여진다.

만약, IA 스테이지가 이런 인접 정보까지 포함하는 프리미티브를 생성하기를 원한다면, 입력되는 버텍스 정보 역시 인접 정보를 포함하고 있어야 한다. 이 과정에서, 지오메트리 쉐이더 스테이지에서 제거되면서 발생하는 더미 버텍스가 제공될 수 있고, 버텍스에 존재하는 버텍스 속성 정보가 손실되어 제공될 수도 있다. 래스터라이저 스테이지에서 은면 처리되거나, 제거되는 기하 정보가 발생하더라도 지오메트리 쉐이더 스테이지가 이를 탐지하고 처리할 필요가 있을 수도 있다.

IA 스테이지의 두 번째 중요한 목적은, 프리미티브들에 대해 SV(System-generated Value) 값을 생성하는 것이다. SV는 시멘틱(semantic)이라고도 부르는데, 시멘틱 정보는 각 쉐이더가 좀 더 효과적으로 데이터를 처리할 수 있도록 도와준다.


Translated from
http://msdn.microsoft.com/en-us/library/ee415695(VS.85).aspx