IDirect3DDevice9::MultiplyTransform
デバイスのワールド行列、ビュー行列、または射影行列と、指定された行列とを乗算します。
HRESULT
MultiplyTransform(
D3DTRANSFORMSTATETYPE State,
CONST D3DMATRIX * pMatrix
);
パラメータ
- State
修正するデバイス行列を指定する、D3DTRANSFORMSTATETYPE 列挙型のメンバーまたは D3DTS_WORLDMATRIX マクロ。最も一般的な設定である D3DTS_WORLDMATRIX(0) でワールド行列を変更しますが、必要ならばビュー行列や射影行列を変更するようにこのメソッドに指定することもできます。 - pMatrix
現在の変換を修正する、D3DMATRIX 構造体へのポインター。
戻り値
メソッドが成功した場合は、D3D_OK を返します。いずれかの引数が無効な場合は、D3DERR_INVALIDCALL が返されます。
解説
乗算の次数は、pMatrix に State を乗じたものになります。
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)
要件
ヘッダー: D3D9.h 宣言
ライブラリ: D3D9.lib 内容
関連項目
IDirect3DDevice9::DrawPrimitive, IDirect3DDevice9::SetTransform, D3DTS_WORLD, D3DTS_WORLDn, D3DTS_WORLDMATRIX