次の方法で共有


D3DXSHEvalConeLight

定数インテンシティのコーンであるライトを評価し、スペクトル球面調和 (SH) データを返します。

HRESULT 
D3DXSHEvalConeLight(
  UINT Order,
  CONST D3DXVECTOR3 * pDir,
  FLOAT Radius,
  FLOAT RIntensity,
  FLOAT GIntensity,
  FLOAT BIntensity,
  FLOAT* pROut,
  FLOAT* pGOut,
  FLOAT* pBOut
);

パラメータ

  • Order
    SH 評価の順序。D3DXSH_MINORDER から D3DXSH_MAXORDER の範囲で指定する必要があります。評価では、Order2 の係数が生成されます。評価の次数は Order - 1 です。
  • pDir
    SH 基底関数を評価する、半球の軸の方向ベクトル (x、y、z) へのポインター。「解説」を参照してください。
  • Radius
    コーンの半径 (ラジアン単位)
  • RIntensity
    ライトの赤のインテンシティ
  • GIntensity
    ライトの緑のインテンシティ
  • BIntensity
    ライトの青のインテンシティ
  • pROut
    赤の成分の出力 SH ベクトルへのポインター
  • pGOut
    緑の成分の出力 SH ベクトルへのポインター
  • pBOut
    青の成分の出力 SH ベクトルへのポインター

戻り値

成功すると、値 D3D_OK を返します。失敗した場合は、次の値を返します。D3DERR_INVALIDCALL

解説 

定数インテンシティのコーンであるライトを評価し、スペクトル SH データを返します。出力ベクトルは、インテンシティ の比率 R/G/B が 1 の場合に、ライト直下のポイントの発射放射輝度 (方向はディフューズ オブジェクトにおけるコーン方向で、アルベドは 1) が 1.0 となるように計算されます。3 つのスペクトル サンプルが計算されます。pROut が返され、pGOut および pBOut が返される場合があります。

次のような単位半径がある球では、方向を単純にシータ (z を軸とした 右回りの角度) およびファイ (z からの角度) で指定できます。

Ee417467.spherical_coordinates(ja-jp,VS.85).gif

次の方程式は、単位球面でのデカルト座標 (x、y、z) と球座標 (シータ、ファイ) の関係を示しています。角度シータの範囲は 0 ~ 2 π ですが、ファイの範囲は 0 ~ π となります。

Ee417467.spherical_coordinates_equations(ja-jp,VS.85).gif

要件

ヘッダー: D3dx9math.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

事前演算済み放射輝度伝播 (Direct3D 9)