DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 뷰포트와 클리핑 클리핑 볼륨   [목차열람] [주소복사] [슬롯비우기]
클리핑 볼륨
 
Microsoft DirectX 9.0

클리핑 볼륨


투영 행렬의 결과에 의해, 투영 공간에서의 클리핑 볼륨이 정해진다. Microsoft® Direct3D® 에서는, 투영 공간에서의 클리핑 볼륨을 다음과 같이 정의한다.

클리핑 볼륨

전의 공식에서,X,Y, Z,W 는 투영 변환을 적용한 후의 정점 좌표를 나타낸다. 클리핑이 유효한 경우 (디폴트 설정), 이러한 범위외에 x, y, z 성분을 가지는 정점이 클리핑 된다.

정점 버퍼를 제외해, 애플리케이션에서는,D3DRENDERSTATETYPE 열거형 렌더링 스테이트를 사용해 클리핑을 유효 또는 무효로 한다. 정점 버퍼의 클리핑 정보는 처리중에 생성된다. 더 자세한 정보는, 「고정 기능 정점 처리」 및 「프로그래밍 가능한 정점 처리」를 참조할것.

Direct3D 는 정점 버퍼의 기본도형의 변환이 끝난 정점을 클리핑 하지 않는다. 다만,IDirect3DDevice9::ProcessVertices 에 의하는 것은 제외하다. 독자적인 변환을 실행할 때에, Direct3D 로 클리핑을 실시할 필요가 있는 경우는, 정점 버퍼를 사용해서는 안된다. 이 경우, 애플리케이션이 데이터를 암벽 횡단 해 변환 해, Direct3D 가 다시 데이터를 암벽 횡단 해 클리핑 한 후, 드라이버가 데이터를 렌더링 하므로, 효율적은 아니다. 따라서, 애플리케이션이 데이터를 변환 하는 경우는, 데이터의 클리핑도 실시해야 하는 것이다.

클리핑이 필요한 변환전의 조명이 끝난 정점 (TL 정점)를 장치가 받으면 정점은 그 rhw 와 뷰포트의 정보를 사용해 클리핑 공간에 반대로 변환 된다. 그 후로 클리핑이 실행된다. 이 TL 정점을 클리핑하기 위한 역변환은, 모든 장치로 실행할 수 있는 것은 아니다.

D3DPMISCCAPS_CLIPTLVERTS 장치 능력은, 장치가 TL 정점을 클리핑 할 수 있을지 어떨지를 나타낸다. 이 능력이 설정되지 않은 경우는, 렌더링 하는 장치에 보내는 TL 정점을 애플리케이션으로 클리핑 할 필요가 있다. 소프트웨어 정점 처리 모드 (장치 자체를 소프트웨어 정점 처리 모드로 생성 하는지, 믹스 모드로서 생성 한 정점 처리 장치를, D3DRS_SOFTWAREVERTEXPROCESSING 렌더링 스테이트를 사용해 소프트웨어 정점 처리 모드로 전환한다)에서는, 장치는 항상 TL 정점을 클리핑 할 수 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP