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 の場合、ライトはポイント ライトです。
必要条件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目