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
前のライト バウンスからの 3D オブジェクトを表す入力 ID3DXPRTBuffer オブジェクトへのポインター。
-
順序 [入力]
-
型: UINT
SH評価の順序。 D3DXSH_MAXORDERまでのD3DXSH_MINORDERの範囲内である必要があります(両端を含む)。 この評価では、Order² 係数が生成されます。 評価の次数は Order - 1 です。
-
NumVolSamples.xml [in]
-
型: UINT
サンプルの場所の数。
-
pSampleLocs [in]
-
型: const D3DXVECTOR3*
各サンプルの位置。 pSampleLocs が NULL の場合、ComputeVolumeSamples はすべてのメッシュ頂点で転送マトリックスを計算します。 ただし、pSampleLocs が NULL でない場合は、球をサンプリングする必要があります (ID3DXPRTEngine::SetSamplingInfo で UseSphere = TRUE と UseCosine = FALSE を設定します)。それ以外の場合、ComputeVolumeSamples はD3DERR_INVALIDCALLを返します。
-
pDataOut [in, out]
-
種類: LPD3DXPRTBUFFER
前のライトからの直接照明を SH 基底ベクトルに投影する出力 ID3DXPRTBuffer オブジェクトへのポインター。 このバッファーには、シミュレーションに適切な数のカラー チャネルが割り当てられている必要があります。
戻り値
型: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合、戻り値は次のいずれかになります:D3DERR_INVALIDCALL、E_OUTOFMEMORY。
注釈
このメソッドは、ソース放射輝度関数の光がシーン (pSurfDataIn) を表すサーフェスから反射され、pSampleLocs で指定された空間内の各ポイントに到達する方法を計算します。 SH 係数は、各 pSampleLocs ポイントにおける、転送されたインシデントの放射輝度に対するソース放射のマッピングを表します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
こちらもご覧ください