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 點的來源弧度與傳輸事件弧度之間的對應。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱