ID3DXPRTEngine::ComputeDirectLightingSHGPU 方法
使用 GPU 來計算 3D 物件的直接光源貢獻,其中來源弧度是由球面調色表示 (SH) 近似值。 在 GPU 上計算光源通常比 CPU 快很多。
語法
HRESULT ComputeDirectLightingSHGPU(
[in] LPDIRECT3DDEVICE9 pDevice,
[in] UINT Flags,
[in] UINT Order,
[in] FLOAT ZBias,
[in] FLOAT ZAngleBias,
[in, out] LPD3DXPRTBUFFER pDataOut
);
參數
-
pDevice [in]
-
用來在 GPU 上執行模擬的 IDirect3DDevice9 裝置物件的指標。 裝置必須支援 ps_2_0 圖元著色器。
注意
回呼函式不應使用 GPU 模擬器所使用的 IDirect3DDevice9 裝置物件。
-
旗標 [in]
-
類型: UINT
定義陰影 z 緩衝區解析度的 GPU 模擬參數。 應該設定為 D3DXSHGPUSIMOPT的其中一個常數值。 若要指定較高的精確度模擬,D3DXSHGPUSIMOPT_HIGHQUALITY值可能會與其中一個D3DXSHGPUSIMOPT_SHADOWRESxxx值結合。
-
順序 [in]
-
類型: UINT
SH 評估的順序。 必須位於 D3DXSH_MINORDER 範圍中,才能包含D3DXSH_MAXORDER。 評估會產生 Order¹ 係數。 評估的程度為 Order - 1。
-
ZBias [in]
-
類型: FLOAT
標準方向的偏差。
-
ZAngleBias [in]
-
類型: FLOAT
標準方向的偏差,以一個減去光線角度的余弦值。
-
pDataOut [in, out]
-
類型: LPD3DXPRTBUFFER
ID3DXPRTBuffer物件的指標。 此緩衝區必須有配置給模擬的適當色彩通道數目。
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL,E_OUTOFMEMORY。
備註
在此方法中,albedo 不會乘以光線訊號,而且只有傳入光線會整合到模擬器中。 藉由不相乘 albedo,您可以比來源弧度更精細地建立 albedo 變化的模型,藉此從壓縮產生更精確的結果。
呼叫 MultiplyAlbedo 以將每個預先計算的弧度傳輸乘以 albedo (PRT) 向量。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱