次の方法で共有


D3DXMatrixShadow

ジオメトリを平面に射影する行列を作成します。

D3DXMATRIX * 
D3DXMatrixShadow(
  D3DXMATRIX * pOut,
  CONST D3DXVECTOR4 * pLight,
  CONST D3DXPLANE * pPlane
);

パラメータ

  • pOut
    処理の結果を表す D3DXMATRIX 構造体へのポインター
  • pLight
    ライトの位置を記述する D3DXVECTOR4 構造体へのポインターです。
  • pPlane
    演算対象の D3DXPLANE 構造体へのポインターです。

戻り値

ジオメトリを平面に射影する D3DXMATRIX 構造体へのポインターを返します。

解説 

D3DXMatrixShadow 関数は、ライトから影を射影するように、ジオメトリを平面に射影します。

この関数の戻り値は、pOut パラメーターに返される値と同じです。このため、D3DXMatrixShadow 関数は他の関数のパラメーターとして使用できます。

この関数は、以下の公式を使用し、返す行列を計算します。

 P = normalize(Plane); L = Light; d = dot(P, L)      P.a * L.x + d  P.a * L.y      P.a * L.z      P.a * L.w   P.b * L.x      P.b * L.y + d  P.b * L.z      P.b * L.w   P.c * L.x      P.c * L.y      P.c * L.z + d  P.c * L.w   P.d * L.x      P.d * L.y      P.d * L.z      P.d * L.w + d 

ライトの w 要素が 0 の場合、原点からライトまでの光線はディレクショナル ライトを表します。ライトの w 要素が 1 の場合、ライトはポイント ライトです。

要件

ヘッダー: D3dx9math.h 宣言

ライブラリ: D3dx9.lib 内容