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 ポイントにおける、転送されたインシデントの放射輝度に対するソース放射のマッピングを表します。

要件

要件
ヘッダー
D3DX9Mesh.h
ライブラリ
D3dx9.lib

こちらもご覧ください

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamplesDirectSH