次の方法で共有


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