본문 바로가기

Library/Computer Graphics

D3D10 Pipeline : Output-Merger Stage

아웃풋 머저(OM, output-merger) 스테이지는 파이프라인 상태, 픽셀 쉐이더에 의해 생성된 픽셀 데이터, 렌더 타겟의 요소, 그리고 깊이 / 스텐실 버퍼의 조합을 사용해서 최종적으로 렌더링될 픽셀의 컬러값을 생성한다. (OpenGL의 프래그먼트 연산 과정과 비슷하다) OM 스테이지는 어느 픽셀이 보여져야 할지 결정하고, 최종적인 픽셀 색상을 섞는(blending) 마지막 단계이다.

여기서, D3D9와 D3D10의 차이점은 다음과 같다 :
D3D9는 어느 픽셀이 렌더 타겟에 출력되어야 할지 결정하기 위해 알파 테스트를 구현했지만, D3D10은 알파 테스트 구현을 제공하지 않는다. 이것은 픽셀 쉐이더나, 깊이 / 스텐실 테스트 함수를 사용하여 같은 효과를 낼 수 있기 때문이다.


깊이 / 스텐실 테스트를 간단히 살펴보면, 깊이 / 스텐실 버퍼는 텍스처 자원으로서 생성되며, 깊이 데이터, 스텐실 데이터 모두를 가질 수 있다. 깊이 데이터는 어느 픽셀이 카메라에 더 가까운지 결정하기 위해 사용되며, 스텐실 데이터는 어느 픽셀이 갱신되어야 하는지 마스킹하기 위해 사용된다. 궁극적으로, 깊이 / 스텐실 값은 어느 픽셀이 그려져야 할지 결정하기 위해 OM 스테이지에 의해 사용된다. 깊이 / 스텐실 테스트가 이루어지는 과정은, 개념적으로 다음과 같다.




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