D3DXSHEvalHemisphereLight
球の 2 つのカラーの間の線形補間であるライトを評価します。
HRESULT
D3DXSHEvalHemisphereLight(
UINT Order,
CONST D3DXVECTOR3 * pDir,
D3DXCOLOR Top,
D3DXCOLOR Bottom,
FLOAT * pROut,
FLOAT * pGOut,
FLOAT * pBOut
);
パラメータ
- Order
球面調和 (SH) 評価の順序。D3DXSH_MINORDER から D3DXSH_MAXORDER の範囲で指定する必要があります。評価では、Order2 の係数が生成されます。評価の次数は Order - 1 です。 - pDir
SH 基底関数を評価する、半球の軸の方向ベクトル (x、y、z) へのポインター。「解説」を参照してください。 - Top
スカイ カラー - Bottom
グラウンド カラー - pROut
赤の成分の出力 SH ベクトルへのポインター - pGOut
緑の成分の出力 SH ベクトルへのポインター - pBOut
青の成分の出力 SH ベクトルへのポインター
戻り値
成功すると、値 D3D_OK を返します。失敗した場合は、次の値を返します。D3DERR_INVALIDCALL
解説
補間は、2 つのポイントの間で球のサーフェスではなく線形補間として行われます (つまり、軸が (0,0,1) の場合、方位角ではなく Z の線形)。結果の球状ライティング関数は、シャドーイングがなく法線が方向 pDir を向いた完全なディフューズ サーフェスのポイントが、値 1 (上部のカラーが白で下部のカラーが黒の場合) の発射放射輝度になるように正規化されます。非常に単純なモデルであり、Top が "スカイ" のインテンシティを表し、Bottom が "グラウンド" のインテンシティを表します。
次のような単位半径がある球では、方向を単純にシータ (z を軸とした 右回りの角度) およびファイ (z からの角度) で指定できます。
次の方程式は、単位球面でのデカルト座標 (x、y、z) と球座標 (シータ、ファイ) の関係を示しています。角度シータの範囲は 0 ~ 2 π ですが、ファイの範囲は 0 ~ π となります。
要件
ヘッダー: D3dx9math.h 宣言
ライブラリ: D3dx9.lib 内容