web-dev-qa-db-ja.com

方向ベクトルをクォータニオン回転に変換する

クォータニオンを方向ベクトルに変換することについてはたくさんの質問を見つけることができますが、その逆の場合は、私が何か間違ったことをしていると思いますが、我慢してください。

私がやろうとしているのは、矢印モデルを使用して指向性ライトの方向を表示することです。

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

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

それとも、ライトに位置がないのにモデルには位置があるので、私は夢中になっていて、それを実際に行うことはできませんか?

12
Caustic

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

あなたの場合、回転はかなり無意味なので、参照用に上向きのベクトルを使用してください(つまり、ライトがトップダウンで輝いているか、またはその逆でない限り、別の参照が必要です)。

したがって、方向ベクトルDと上向きベクトルUの外積を側方ベクトルSに取り、次にDとSを交差させて新しいUにします。n。次に、D、Uを使用しますn、Sを行(または計算ルールの設定方法によっては列)として行列として。マトリックスからクォータニオンはよく知られている数学です。

13
joojaa