次の方法で共有


D3DXMatrixShadow 関数 (D3DX10Math.h)

Note

D3DX10 ユーティリティ ライブラリは非推奨です。 代わりに DirectXMath を使用することをお勧めします。

ジオメトリを平面にフラット化するマトリックスを作成します。

構文

D3DXMATRIX* D3DXMatrixShadow(
  _Inout_       D3DXMATRIX  *pOut,
  _In_    const D3DXVECTOR4 *pLight,
  _In_    const D3DXPLANE   *pPlane
);

パラメーター

pOut [in, out]

種類: D3DXMATRIX*

操作の結果である D3DXMATRIX 構造体へのポインター。

pLight [in]

型: const D3DXVECTOR4*

ライトの位置を記述する D3DXVECTOR4 へのポインター。

pPlane [in]

型: const D3DXPLANE*

ソース D3DXPLANE へのポインター。

戻り値

種類: D3DXMATRIX*

ジオメトリを平面にフラット化する 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 の場合、原点からライトへのレイは方向ライトを表します。 1 の場合、ライトはポイント ライトです。

必要条件

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

関連項目

数値演算関数