D3DXSHEvalConeLight 関数 (D3dx9math.h)
Note
D3DX (D3DX 9、D3DX 10、D3DX 11) ユーティリティ ライブラリは非推奨であり、Windows ストア アプリではサポートされていません。
Note
この関数を使用する代わりに、 球面調和演算 ライブラリ関数 XMSHEvalConeLight を使用することをお勧めします。
一定の強度の円錐である光を評価し、スペクトル球面調和 (SH) データを返します。
構文
HRESULT D3DXSHEvalConeLight(
_In_ UINT Order,
_In_ const D3DXVECTOR3 *pDir,
_In_ FLOAT Radius,
_In_ FLOAT RIntensity,
_In_ FLOAT GIntensity,
_In_ FLOAT BIntensity,
_Out_ FLOAT *pROut,
_Out_ FLOAT *pGOut,
_Out_ FLOAT *pBOut
);
パラメーター
-
順序 [入力]
-
型: UINT
SH評価の順序。 D3DXSH_MAXORDERまでのD3DXSH_MINORDERの範囲内である必要があります(両端を含む)。 この評価では、Order² 係数が生成されます。 評価の次数は Order - 1 です。
-
pDir [in]
-
型: const D3DXVECTOR3*
SH 基底関数を評価する (x、y、z) 半球の軸方向ベクトルへのポインター。 「解説」を参照してください。
-
半径 [入力]
-
型: FLOAT
円錐の半径 (ラジアン単位)。
-
RIntensity [in]
-
型: FLOAT
光の赤色の強度。
-
GIntensity [in]
-
型: FLOAT
光の緑色の強度。
-
BIntensity [in]
-
型: FLOAT
光の青色の強度。
-
pROut [out]
-
型: FLOAT*
赤いコンポーネントの出力 SH ベクターへのポインター。
-
pGOut [out]
-
型: FLOAT*
緑のコンポーネントの出力 SH ベクターへのポインター。
-
pBOut [out]
-
型: FLOAT*
青いコンポーネントの出力 SH ベクターへのポインター。
戻り値
型: HRESULT
関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値は D3DERR_INVALIDCALL になります。
解説
一定の強度の円錐であるライトを評価し、スペクトル SH データを返します。 出力ベクトルは、強度比 R/G/B が 1 に等しい場合、光の直下の点 (アルベドが 1 の拡散オブジェクトの円錐方向に向いている) の終了放射輝度が 1.0 になるように計算されます。 これにより、3 つのスペクトル サンプルが計算されます。 pROut が返され、 pGOut と pBOut が返される場合があります。
次の図に示すように、単位半径を持つ球体では、方向は ta、 右利き方向の z 軸を中心とした角度、φ は z からの角度で指定できます。
次の式は、単位球上のデカルト (x, y, z) と球形 (θ, phi) 座標の関係を示しています。 角度θは 0 ~ 2 pi の範囲で変化し、phi は 0 から pi の範囲で変化します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目