IDirect3DDevice9::MultiplyTransform メソッド
IDirect3DDevice9::MultiplyTransform メソッド
デバイスのワールド行列、ビュー行列、または射影行列に、指定された行列を乗算する。
構文
HRESULT MultiplyTransform(
D3DTRANSFORMSTATETYPE State,
CONST D3DMATRIX *pMatrix
);
パラメータ
- State
[in] D3DTRANSFORMSTATETYPE 列挙型のメンバ、または D3DTS_WORLDMATRIX マクロ。変更するデバイス行列を識別する。最も一般的な設定は D3DTS_WORLDMATRIX(0) で、ワールド行列を変更するが、必要であれば、ビュー行列や射影行列を変更するように指定することもできる。 - pMatrix
[in] 現在のトランスフォームを変更する D3DMATRIX 構造体へのポインタ。
戻り値
成功した場合は、D3D_OK を返す。
引数のいずれかが無効な場合は、D3DERR_INVALIDCALL になる。
注意
乗算の順序は、State × pMatrix である。
アプリケーションが、トランスフォームの階層構造を使って動作するために、IDirect3DDevice9::MultiplyTransform メソッドを使うことも考えられる。たとえば、腕を表すジオメトリとトランスフォームは、以下の階層で構成することもある。
shoulder_transformation
upper_arm geometry
elbow transformation
lower_arm geometry
wrist transformation
hand geometry
アプリケーションでは、この階層をレンダリングするために以下の一連の呼び出しを行うことができる。このコードでは一部のパラメータのみ示す。
IDirect3DDevice9::SetTransform(D3DTS_WORLDMATRIX(0),
shoulder_transform)
IDirect3DDevice9::DrawPrimitive(upper_arm)
IDirect3DDevice9::MultiplyTransform(D3DTS_WORLDMATRIX(0),
elbow_transform)
IDirect3DDevice9::DrawPrimitive(lower_arm)
IDirect3DDevice9::MultiplyTransform(D3DTS_WORLDMATRIX(0),
wrist_transform)
IDirect3DDevice9::DrawPrimitive(hand)
参照
IDirect3DDevice9::DrawPrimitive、IDirect3DDevice9::SetTransform、D3DTS_WORLD、D3DTS_WORLDn、D3DTS_WORLDMATRIX