꼭짓점 데이터 처리(Direct3D 9)
IDirect3DDevice9 인터페이스는 소프트웨어와 하드웨어 모두에서 꼭짓점 처리를 지원합니다. 일반적으로 소프트웨어 및 하드웨어 꼭짓점 처리에 대한 디바이스 기능은 동일하지 않습니다. 하드웨어 기능은 디스플레이 어댑터 및 드라이버에 따라 가변적이지만 소프트웨어 기능은 고정됩니다.
다음 플래그는 HAL(하드웨어 추상화 계층) 및 참조 디바이스에 대한 꼭짓점 처리 동작을 제어합니다.
- D3DCREATE_SOFTWARE_VERTEXPROCESSING
- D3DCREATE_HARDWARE_VERTEXPROCESSING
- D3DCREATE_MIXED_VERTEXPROCESSING
IDirect3D9::CreateDevice를 호출할 때 꼭짓점 처리 동작 플래그 중 하나를 지정합니다. 혼합 모드 플래그를 사용하면 디바이스가 소프트웨어 및 하드웨어 꼭짓점 처리를 모두 수행할 수 있습니다. 한 번에 하나의 꼭짓점 처리 플래그만 디바이스에 대해 설정할 수 있습니다. 순수 디바이스(D3DCREATE_PUREDEVICE)를 만들 때 D3DCREATE_HARDWARE_VERTEXPROCESSING 플래그를 설정해야 합니다.
단일 디바이스에서 이중 꼭짓점 처리 기능을 방지하려면 런타임에 하드웨어 꼭짓점 처리 기능만 쿼리할 수 있습니다. 소프트웨어 꼭짓점 처리 기능은 고정되어 있으며 런타임에 쿼리할 수 없습니다.
D3DCAPS9 구조체의 VertexProcessingCaps 멤버는 디바이스의 하드웨어 꼭짓점 처리 기능을 결정합니다.
소프트웨어 꼭짓점 처리의 경우 다음 기능이 지원됩니다.
- D3DVTXPCAPS의 D3DVTXPCAPS_DIRECTIONALLIGHTS 멤버
- D3DVTXPCAPS의 D3DVTXPCAPS_LOCALVIEWER 멤버
- D3DVTXPCAPS의 D3DVTXPCAPS_MATERIALSOURCE7 멤버
- D3DVTXPCAPS의 D3DVTXPCAPS_POSITIONALLIGHTS 멤버
- D3DVTXPCAPS의 D3DVTXPCAPS_TEXGEN 멤버
- D3DVTXPCAPS의 D3DVTXPCAPS_TWEENING 멤버
또한 다음 표에는 소프트웨어 꼭짓점 처리 모드의 디바이스에 대한 D3DCAPS9 구조체의 멤버에 대해 설정된 값이 나와 있습니다.
멤버 | 소프트웨어 꼭짓점 처리 기능 |
---|---|
MaxActiveLights | 제한 없음 |
MaxUserClipPlanes | 6 |
MaxVertexBlendMatrices | 4 |
MaxStreams | 16 |
MaxVertexIndex | 0xFFFFFFFF |
일반적으로 꼭짓점 처리 바인딩된 모든 애플리케이션은 HAL 디바이스를 사용해야 합니다. 소프트웨어 꼭짓점 처리는 무제한 조명 수와 프로그래밍 가능한 꼭짓점 셰이더에 대한 전체 지원을 포함하여 보장된 꼭짓점 처리 기능 집합을 제공합니다. HAL 디바이스를 사용할 때 언제든지 소프트웨어와 하드웨어 꼭짓점 처리 간에 전환할 수 있습니다(하드웨어 및 소프트웨어 꼭짓점 처리를 모두 지원하는 유일한 디바이스 유형임). 유일한 요구 사항은 소프트웨어 꼭짓점 처리에 사용되는 꼭짓점 버퍼를 시스템 메모리에 할당해야 한다는 것입니다.
관련 항목