DirectX Graphics 프로그래밍 가이드 프로그래밍 가능한 파이프라인 지오메트리 파이프라인에의 정점 셰이더의 통합   [목차열람] [주소복사] [슬롯비우기]
지오메트리 파이프라인에의 정점 셰이더의 통합
 
Microsoft DirectX 9.0

지오메트리 파이프라인에의 정점 셰이더의 통합


처리중에, 프로그래밍 가능한 정점 셰이더는, Microsoft® Direct3D® 지오메트리 파이프라인의 변환 & 조명 모듈로부터 옮겨진다. 실질적으로, 변환 & 조명 처리에 관한 스테이트 정보는 무시된다. 다만, 정점 셰이더가 무효가 되어, 고정 기능에 의한 처리하러 돌아왔을 경우는, 현재의 스테이트 설정이 모두 적용된다.

고차원 기본도형의 테설레이션은 모두, 정점 셰이더의 실행전에 실시할 필요가 있다. 셰이더의 처리의 뒤에 표면 테설레이션을 실행하는 처리 환경에서는, 애플리케이션과 셰이더 코드와는 무관계한 방법으로 실행해야 한다. 의미들 정보는, 보통, 셰이더의 전에는 제공되지 않기 때문에, 특수한 토큰을 사용해, 어느 입력 스트림 구성 요소가 베이스 위치를 나타내는지를 식별한다. 그 베이스 위치로부터의 상대 위치에 다른 전구성 요소는 삽입된다. 삽입할 수 없는 데이터 채널은 지원 되지 않는다.

출력으로서 정점 셰이더는 동차 클립 공간의 정점 위치를 생성해야 한다. 생성 가능한 추가 데이터에는, 텍스처 좌표·색·포그(안개:fog) 계수등이 있다.

표준적인 그래픽스 파이프라인은 셰이더에 의해, 다음의 태스크를 포함한 정점 출력을 처리한다.

Microsoft DirectX® 9.0 의 클리핑 공간은, 정점 셰이더에 의한 정점 처리와 고정 기능에 의한 정점 처리와 같다. 더 자세한 정보는, 「클리핑 볼륨」을 참조할것.

프로그래밍 가능한 지오메트리 파이프라인은, Direct3D 애플리케이션 프로그래밍 인터페이스 (API) 내의 모드이다. 유효하게 되어 있는 경우, 정점 파이프라인을 부분적으로 옮겨놓는다. 무효가 되어 있는 경우, API 는 고정 기능에 의한 정점 처리하러 돌아온다. 정점 셰이더의 실행은, 내부의 Direct3D 스테이트를 변경하지 않고, Direct3D 스테이트는 셰이더에서는 사용할 수 없다.

IDirect3DDevice9::CreateVertexShader 를 사용해 정점 셰이더를 생성 해,IDirect3DDevice9::SetVertexShader 를 사용해 프로그래밍 가능한 셰이더를 설정하고 나서, 드로잉(Drawing) 호출을 실시하는 것.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP