Microsoft DirectX 8.0 (C++) |
デバイスのワールド行列、ビュー行列、または射影行列に、指定された行列を乗算する。
HRESULT MultiplyTransform( D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix );
成功した場合は、D3D_OK を返す。
引数のいずれかが無効な場合は、D3DERR_INVALIDCALL になる。
乗算の順序は、State × pMatrix である
アプリケーションが、トランスフォームの階層構造を使って動作するために、MultiplyTransform メソッドを使用することも考えられる。たとえば、腕を表すジオメトリとトランスフォームは、以下の階層で構成することもある。
shoulder_transformation upper_arm geometry elbow transformation lower_arm geometry wrist transformation hand geometry
アプリケーションでは、この階層をレンダリングするために以下の一連の呼び出しを行うことができる。このコードでは一部のパラメータのみ示す。
IDirect3DDevice8::SetTransform(D3DTS_WORLDMATRIX(0), shoulder_transform) IDirect3DDevice8::DrawPrimitive(upper_arm) IDirect3DDevice8::MultiplyTransform(D3DTS_WORLDMATRIX(0), elbow_transform) IDirect3DDevice8::DrawPrimitive(lower_arm) IDirect3DDevice8::MultiplyTransform(D3DTS_WORLDMATRIX(0), wrist_transform) IDirect3DDevice8::DrawPrimitive(hand)
ヘッダー : d3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。
IDirect3DDevice8::DrawPrimitive、IDirect3DDevice8::SetTransform、D3DTS_WORLD、D3DTS_WORLDn、D3DTS_WORLDMATRIX