處理頂點資料 (Direct3D 9)
IDirect3DDevice9 介面支援軟體和硬體中的頂點處理。 一般而言,軟體和硬體頂點處理的裝置功能並不相同。 硬體功能是可變的,視顯示器適配卡和驅動程式而定,而軟體功能則是固定的。
下列旗標可控制硬體抽象層和參考裝置的頂點處理行為。
- D3DCREATE_SOFTWARE_VERTEXPROCESSING
- D3DCREATE_HARDWARE_VERTEXPROCESSING
- D3DCREATE_MIXED_VERTEXPROCESSING
呼叫 IDirect3D9::CreateDevice時,指定其中一個頂點處理行為旗標。 混合模式旗標可讓裝置同時執行軟體和硬體頂點處理。 裝置一次只能設定一個頂點處理旗標。 請注意,建立純裝置時必須設定D3DCREATE_HARDWARE_VERTEXPROCESSING旗標(D3DCREATE_PUREDEVICE)。
若要避免單一裝置上的雙重頂點處理功能,在運行時間只能查詢硬體頂點處理功能。 軟體頂點處理功能是固定的,而且無法在運行時間查詢。
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 裝置時,您可以隨時在軟體和硬體頂點處理之間切換 (這是唯一支援硬體和軟體頂點處理的裝置類型)。 唯一的需求是,用於軟體頂點處理的頂點緩衝區必須配置於系統記憶體中。
相關主題