Bishamon Personal コミュニティ

Bishamon Personal コミュニティ 掲示板(仮運営中)です。

Bishamon Personal コミュニティ » DirectX9 » 座標移動について

座標移動について

Post Reply

Page: 1

Author Post
Member
Registered: Oct 2011
Posts: 12
エフェクトの座標を移動させる関数について、

変換行列を渡す
void BMEffect::SetMatrix(const ml::matrix44 &matrix);

と、座標を渡す
void BMEffect::SetOffsetPosition(const ml::vector3d &offset);

の2つのメソッドが提供されていますが、
この2つの関数はどのような違いがあるのでしょうか?

また、どういった用途で使い分けをすればよいのでしょうか?
Administrator
Registered: Oct 2011
Posts: 206
Location: Tokyo
■SetMatrixでの座標移動
階層構造の連続する行列乗算の最上位に行列を掛けることで移動を実現しています。

ノードとしてぶら下がっているほぼ全てのものに移動による運動的な影響を与えますが、影響の受け方は各ノードのパラメータとの整合性を保った範囲になります。
用途は、ロケータやボーンなどの位置情報を与えて、エフェクトをそこに追従させる場合などに用います。
エフェクトを運動的な意味で「移動」させたい場合に使うと考えてください。

■SetOffsetPositionでの移動
階層構造によるのキネマティックス計算後のプリミティブの位置情報に直接オフセット値を加えて動かします。
用途は、最終的なポリゴンの描画される位置をプログラムから直接的にかつ強制的に動かしたい場合に用います。

更に具体的には、例えばスクロール系のゲームで、マップ側を背景エフェクトも含めてスクロールさせるときとか、エフェクトに運動的な移動の影響を与えたくない、表示位置だけを純粋に動かしたいという場合に用います。

Post Reply

Page: 1

Bishamon Personal コミュニティ » DirectX9 » 座標移動について

Bishamon Personal コミュニティ is powered by UseBB 1 Forum Software