2013-04-08 7 views
7

四元数を方向ベクトルに変換することに関して多少の質問がありますが、それ以外の方法では何か間違っていると思うとは思えません。方向ベクトルを四元数回転に変換する

私がしようとしているのは、単純に矢印モデルを使って指向性ライトの方向を表示することです。

方向性ライトの方向は単位ベクトルですが、モデルはクォータニオンを使用して回転します。

ですから、このモデルを光の方向に合わせて回転させるにはどうすればよいですか?

または私は狂っていますが、ライトはポジションがありませんが、モデルでは、実際にはできません。

答えて

10

方向ベクトルは定義された回転ではありませんが、解決方法は無限にあります。軸の周りを回転させる方法に関する情報はありません。 2つのベクトルは、ベクトルと回転(意味のある中心を持つ)と同様に可能であり、実際には完全に定義された行列です。

あなたのケースではローテーションは意味がありませんので、参照用にアップベクトルを使用してください(つまり、あなたのライトがトップダウンに輝いていないか、別のリファレンスが必要な場合を除きます)。

したがって、サイドベクトルSの方向ベクトルDとアップベクトルUの積をとり、新しいU nの場合はDとSを交差させます。次に、D、U n、Sを行(または計算ルールの設定方法に応じて列)として使用します。行列は四元数でよく知られています。

+0

http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ – Kit10

+0

方向とアップベクトルを行列に変換するための詳細:https://stackoverflow.com/questions/18558910/direction-vector回転行列 –

関連する問題