處理頂點資料 (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 裝置時,您可以隨時切換軟體和硬體頂點處理 (,這是支援硬體和軟體頂點處理) 的唯一裝置類型。 唯一的需求是,用於軟體頂點處理的頂點緩衝區必須配置在系統記憶體中。
相關主題