共用方式為


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]

類型: LPDIRECT3DDEVICE9

用來在 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) 向量。

規格需求

需求
標頭
D3DX9Mesh.h
程式庫
D3dx9.lib

另請參閱

ID3DXPRTEngine