共用方式為


ID3DXPRTEngine::ComputeVolumeSamples 方法

計算從先前光線跳到球面調色的直接光源投影, (SH) 基礎向量,這些向量代表指定位置的事件弧度。

語法

HRESULT ComputeVolumeSamples(
  [in]            LPD3DXPRTBUFFER pSurfDataIn,
  [in]            UINT            Order,
  [in]            UINT            NumVolSamples.xml,
  [in]      const D3DXVECTOR3     *pSampleLocs,
  [in, out]       LPD3DXPRTBUFFER pDataOut
);

參數

pSurfDataIn [in]

類型: LPD3DXPRTBUFFER

輸入 ID3DXPRTBuffer 物件的指標,代表前一個光線彈跳的 3D 物件。

順序 [in]

類型: UINT

SH 評估的順序。 必須位於 D3DXSH_MINORDER 範圍中,才能包含D3DXSH_MAXORDER。 評估會產生 Order¹ 係數。 評估的程度為 Order - 1。

NumVolSamples.xml [in]

類型: UINT

範例位置數目。

pSampleLocs [in]

類型:const D3DXVECTOR3*

每個範例的位置。 如果 pSampleLocs 為 Null,ComputeVolumeSamples 會計算每個網格頂點的傳輸矩陣。 不過,如果 pSampleLocs 不是Null,您必須在球體上取樣 (設定 UseSphere = TRUE,並在ID3DXPRTEngine::SetSamplingInfo) 中設定 UseCosine = FALSE;否則,ComputeVolumeSamples 會傳回D3DERR_INVALIDCALL。

pDataOut [in, out]

類型: LPD3DXPRTBUFFER

輸出 ID3DXPRTBuffer 物件的指標,將先前光線的直接光源投射到 SH 基礎向量。 此緩衝區必須有配置給模擬的適當色彩通道數目。

傳回值

類型: HRESULT

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

備註

此方法會計算從來源弧度函式反射光線的方式,該表面代表 pSurfDataIn (pSurfDataIn) ,並抵達 pSampleLocs 所指定的每個空間點。 SH 係數代表每個 pSampleLocs 點的來源弧度與傳輸事件弧度之間的對應。

規格需求

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

另請參閱

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamplesDirectSH