次の方法で共有


D3DXSHEvalDirection

入力方向ベクトルから球面調和 (SH) 基底関数を評価します。

FLOAT * 
D3DXSHEvalDirection(
  FLOAT * pOut,
  UINT Order,
  CONST D3DXVECTOR3 * pDir
);

パラメータ

  • pOut
    球面調和 (SH) 出力係数へのポインター。評価では、Order2 の係数が生成されます。「解説」を参照してください。
  • Order
    SH 評価の順序。D3DXSH_MINORDER から D3DXSH_MAXORDER の範囲で指定する必要があります。評価では、Order2 の係数が生成されます。評価の次数は Order - 1 です。
  • pDir
    SH 基底関数を評価する方向ベクトル (x、y、z)。正規化する必要があります。「解説」を参照してください。

戻り値

SH 出力係数へのポインター。「解説」を参照してください。

解説 

基底関数 Ylm の各係数は、メモリー位置 l2 + m + l に格納されます。この場合、

  • l は、基底関数の次数です。
  • m は、指定された l の値に対する基底関数のインデックスであり、-l から l の範囲内です。

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

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

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

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

要件

ヘッダー: D3dx9math.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

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