ID3DXPRTEngine::ComputeDirectLightingSHGPU
GPU を使用して、光源放射輝度が球面調和 (SH) 近似で表される 3D オブジェクトへの直接ライティングのコントリビューションを計算します。GPU 上でのライティングの計算は、一般に、CPU 上での計算よりもはるかに高速となります。
HRESULT
ComputeDirectLightingSHGPU(
LPDIRECT3DDEVICE9 pDevice,
UINT Flags,
UINT Order,
FLOAT ZBias,
FLOAT ZAngleBias,
LPD3DXPRTBUFFER pDataOut
);
パラメータ
pDevice
GPU 上でシミュレーションを実行するために使用する IDirect3DDevice9 デバイス オブジェクトへのポインターです。デバイスは、ps_2_0 ピクセル シェーダーをサポートしている必要があります。注 コールバック関数では、GPU シミュレーターが使用する IDirect3DDevice9 デバイス オブジェクトを使用しないでください。
Flags
シャドウ z バッファーの解像度を定義する GPU シミュレーション パラメーターです。D3DXSHGPUSIMOPT の定数値のいずれかを設定する必要があります。高精度なシミュレーションを指定する場合は、D3DXSHGPUSIMOPT_HIGHQUALITY 値を D3DXSHGPUSIMOPT_SHADOWRESxxx のいずれかと組み合わせることができます。Order
SH 評価の順序です。D3DXSH_MINORDER から D3DXSH_MAXORDER の範囲で指定する必要があります。評価では、Order2 の係数が生成されます。評価の次数は Order - 1 です。ZBias
法線方向のバイアスです。ZAngleBias
1 から光線との角度のコサインを減算した値でスケーリングした、法線方向のバイアスです。pDataOut
ID3DXPRTBuffer オブジェクトへのポインターです。このバッファーは、シミュレーション用に割り当てられた適切な数のカラー チャンネルを持つことが必要です。
戻り値
メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、E_OUTOFMEMORY
解説
このメソッドでは、アルベドはライト信号で乗算されず、入射するライトのみがシミュレーターに組み込まれます。アルベドを乗算しない場合、アルベドの変動を光源放射輝度よりも微細なスケールでモデリングすることができ、それによって、圧縮の結果がより正確になります。
それぞれの事前演算済み放射輝度伝播 (PRT) ベクトルをアルベドで乗算するには、ID3DXPRTEngine::MultiplyAlbedo を呼び出します。
要件
ヘッダー: D3DX9Mesh.h 宣言
ライブラリ: D3dx9.lib 内容