次の方法で共有


D3DXSHEvalConeLight 関数 (D3DX10.h)

注意

D3DX (D3DX 9、D3DX 10、および D3DX 11) ユーティリティ ライブラリは非推奨であり、Windows ストア アプリではサポートされていません。

注意

この関数を使用する代わりに、 球面調和演算 ライブラリ関数 XMSHEvalConeLight を使用することをお勧めします。

一定強度の円錐であるライトを評価し、スペクトル球面調和 (SH) データを返します。

構文

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

パラメーター

Order [in]

型: UINT

SH評価の順序。 D3DXSH_MINORDERからD3DXSH_MAXORDERまでの範囲に含める必要があります。 この評価では、Order² 係数が生成されます。 評価の次数は Order - 1 です。

pDir [in]

型: const D3DXVECTOR3*

SH基底関数を評価する(x,y,z)半球軸方向ベクトルへのポインター。 「解説」を参照してください。

Radius [in]

型: FLOAT

円錐の半径 (ラジアン単位)。

RIntensity [in]

型: FLOAT

ライトの赤い強度。

GIntensity [in]

型: FLOAT

ライトの緑色の強度。

BIntensity [in]

型: FLOAT

光の青い強度。

pROut [in]

型: FLOAT*

赤成分の出力 SH ベクトルへのポインター。

pGOut [in]

型: FLOAT*

緑色のコンポーネントの出力 SH ベクトルへのポインター。

pBOut [in]

型: FLOAT*

青成分の出力 SH ベクトルへのポインター。

戻り値

種類: HRESULT

関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値は D3DERR_INVALIDCALL になります。

注釈

一定の強度の円錐であるライトを評価し、スペクトル SH データを返します。 出力ベクトルは、強度比 R/G/B が 1 に等しい場合、光の直下の点 (アルベドが 1 の拡散オブジェクトの円錐方向に向いている) の終了放射輝度が 1.0 になるように計算されます。 これにより、3 つのスペクトル サンプルが計算されます。pROut が返されますが、pGOut と pBOut が返される場合があります。

次の図に示すように、単位半径を持つ球では、θ、右方向の z 軸に関する角度、z からの角度 phi を使用して、方向を指定できます。

単位半径を持つ球の図

次の式は、単位球上のデカルト (x、y、z) と球面 (θ,phi) 座標の関係を示しています。 角度θは0〜2 piの範囲で変化し、phiは0からpiの範囲で変化する。

デカルト座標と球座標の関係の方程式

要件

要件
ヘッダー
D3DX10.h
ライブラリ
D3DX10.lib

関連項目

数値演算関数