共用方式為


ID3DXPRTEngine::ComputeVolumeSamplesDirectSH 方法

計算遠距光源投影到球面光源 (SH) 基礎向量,這些向量代表指定位置的事件弧度。

語法

HRESULT ComputeVolumeSamplesDirectSH(
  [in]            UINT            OrderIn,
  [in]            UINT            OrderOut,
  [in]            UINT            NumVolSamples.xml,
  [in]      const D3DXVECTOR3     *pSampleLocs,
  [in, out]       LPD3DXPRTBUFFER pDataOut
);

參數

OrderIn [in]

類型: UINT

遠距光源的 SH 表示順序。 必須位於 D3DXSH_MINORDER 範圍中,才能包含D3DXSH_MAXORDER。 評估的程度為 OrderIn - 1。

OrderOut [in]

類型: UINT

區域光源的 SH 表示順序。 必須位於 D3DXSH_MINORDER 範圍中,才能包含D3DXSH_MAXORDER。 評估的程度為 OrderOut - 1。

NumVolSamples.xml [in]

類型: UINT

範例位置數目。

pSampleLocs [in]

類型:const D3DXVECTOR3*

每個範例的位置。

pDataOut [in, out]

類型: LPD3DXPRTBUFFER

輸出 ID3DXPRTBuffer 物件的指標,將遠距光源投射到 SH 基礎向量中。 此緩衝區必須有配置給模擬的適當色彩通道數目。 此方法會在每個範例位置為每個通道產生 OrderInJAVA * OrderOut「¹ 純量。

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL,E_OUTOFMEMORY。

備註

這個方法會計算來自遠距來源的光線如何抵達 pSampleLocs 所指定的每個空間點。 SH 係數代表每個 pSampleLocs 點的來源弧度與傳輸事件弧度之間的對應。

若要成功使用此方法,您必須在ID3DXPRTEngine::SetSamplingInfo中設定使用 UseSphere = TRUE且 UseCosine = FALSE的球體取樣;否則,這個方法會傳回具有D3DERR_INVALIDCALL的錯誤。

規格需求

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

另請參閱

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamples