硬體轉換和光源

針對最新的 Direct X 版本,已針對 D3dDrawPrimitives2 DDI 進行修改,以啟用幾何作業的硬體加速,例如光源和轉換。 在 API 層級,支援硬體頂點作業的裝置會與僅點陣化裝置分開列舉。

現有的端點結構已擴充,以指出硬體加速轉換裝置上可能存在的功能。 例如,支援的光源數目是使用 D3DLIGHTINGCAPS 結構的 dwNumLights 成員來設定,而 D3DLIGHTINGCAPS 結構會以 D3DDEVICEDESC_V1 結構報告。

下表列出其他旗標:

旗標 意義

D3DDEVCAPS_CANBLTSYSTONONLOCAL

裝置支援從系統記憶體到非本機視訊記憶體的紋理。

D3DDEVCAPS_DRAWPRIMITIVES2EX

驅動程式支援擴充 的 D3dDrawPrimitives2 功能,以符合 DirectX 7.0 規範。

D3DDEVCAPS_HWRASTERIZATION

裝置具有點陣化的硬體加速。

D3DDEVCAPS_HWTRANSFORMANDLIGHT

裝置可以在硬體中支援硬體轉換和光源。

D3DDEVCAPS_SEPARATETEXTUREMEMORIES

裝置會從不同的記憶體集區進行文字處理。

D3DTRANSFORMCAPS_CLIP

硬體可以在轉換時裁剪。

由於硬體幾何加速器的功能集可能會 (不同,例如支援的光源數目) ,因此上限結構會指出此裝置執行的幾何作業子集。 零是支援的光源數目的有效值,表示硬體只會進行轉換。

只有包含頂點法線的頂點會正確亮起;對於不包含一般值的頂點而言,所有光源計算都會採用 0 的點乘積。

幾何管線軟體實作所使用的所有索引鍵狀態和資料結構,都可在 DDI 層級使用。 有些顯示卡只會在硬體中實作光源,並在主機處理器上執行轉換和裁剪。

下列轉譯狀態類型僅適用于加速轉換和光源的裝置:

D3DRENDERSTATE_AMBIENT
D3DRENDERSTATE_AMBIENTMATERIALSOURCE
D3DRENDERSTATE_CLIPPING
D3DRENDERSTATE_CLIPPLANEENABLE
D3DRENDERSTATE_COLORVERTEX
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE
D3DRENDERSTATE_EXTENTS
D3DRENDERSTATE_FOGVERTEXMODE
D3DRENDERSTATE_LIGHTING
D3DRENDERSTATE_LOCALVIEWER
D3DRENDERSTATE_NORMALIZENORMALS
D3DRENDERSTATE_SPECULARMATERIALSOURCE
D3DRENDERSTATE_VERTEXBLEND