1

Ogre3D でカスタム中心点を中心にノードを回転させようとしていますが、これを行う方法が見つからないようです。私はクォータニオンとマトリックスを調べましたが、私がやろうとしていることをしていないようです (しかし、正直なところ、私はそれらを完全に理解しているとは確信していません)。

下の図は、私が望むもの (上から見た壁の「ドア」) を示しています。「o」は中心点 (ヒンジ)、「x」はドア、「=」は壁を表します。

- Original position
- What I get:          What I want:

  == x x o x x ==      == x o x x x ==

- After a 90 degree clockwise rotation:
- What I get:          What I want:

         x
         x                  x  
  ==     o     ==      ==   o       ==
         x                  x
         x                  x
                            x
4

2 に答える 2

2

これが常に同じポイントを中心に回転させたいオブジェクト(ドアなど)に関する場合、実際に最も簡単な方法は、オブジェクトのピボットポイントを変更することです。

これは、Maya / Max/Blenderのアーティストが簡単に行うことができます。

または、ドアを目的の位置にある追加のシーンノードに接続することもできます。次に、その余分なシーンノードを回転します。これには、Ogreからすべてを実行できるという利点があります。

于 2012-03-23T10:55:28.860 に答える
0

の観点からの基本的なテクニックmatrix calculusは次のとおりです。

  • モデルをポイントに移動する

  • モデルを回転させる

最初に を実行してみてくださいTranslate(...)Rotate(...)これに一度成功すると、1 つのマトリックスを使用して、平行移動と回転のデータを使用して最適化できるため、1 回のTransform(...)呼び出しで必要なものを実行できます。

お役に立てれば。

于 2012-03-23T10:11:32.230 に答える