Share via


ID3DXPRTEngine::ComputeLDPRTCoeffs

各サンプルの法線ベクトルに対するローカルで変形可能な事前演算済み放射輝度伝播 (LDPRT) 係数を計算して、入力の ID3DXPRTBuffer データに対する最小 2 乗誤差を最小化します。これらの係数を、スキニングまたはトランスフォームされた法線ベクトルと共に使用すると、動的オブジェクトへのグルーバル エフェクトをモデルリングすることができます。

HRESULT 
ComputeLDPRTCoeffs(
  LPD3DXPRTBUFFER pDataIn,
  UINT Order,
  D3DXVECTOR3 * pNormOut,
  LPD3DXPRTBUFFER pDataOut
);

パラメータ

  • pDataIn
    入力の ID3DXPRTBuffer 球面調和 (SH) 事前演算済み放射輝度伝播 (PRT) データ オブジェクトへのポインターです。
  • Order
    SH 評価の順序です。D3DXSH_MINORDER から D3DXSH_MAXORDER の範囲で指定する必要があります。評価では、Order2 の係数が生成されます。評価の次数は Order - 1 です。
  • pNormOut
    LDPRT 係数が最適化されたシェーダーに最適な法線ベクトルを格納するオプションのベクトル配列です。この配列は、pDataIn 内のサンプル数と同じサイズであることが必要です。NULL の場合、サーフェスの法線ベクトルが使用されます。
  • pDataOut
    各サンプルのカラー チャンネルごとの Order 範囲における調和係数を含んだ、出力の ID3DXPRTBuffer オブジェクトへのポインターです。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、E_OUTOFMEMORY

解説 

法線ベクトルをシェーディングするソリューションは、このメソッドによりオプションで取得することができます。これらの法線ベクトルを LDPRT 係数と併用することで、PRT 信号をより正確に表すことができます。この場合、これらの係数は、法線方向を向いた範囲内の調和を表します。

このメソッドは、ID3DXPRTEngine::ComputeSurfSamplesBounce または ID3DXPRTEngine::ComputeSurfSamplesDirectSH の結果に使用することはできません。

要件

ヘッダー: D3DX9Mesh.h 宣言

ライブラリ: D3dx9.lib 内容