私のプロジェクトで3Dで奇妙な問題が発生しました。誰もがLookAtベクトルを計算することの忠実さを知っていますが、変換行列から "up"ベクトルを計算するのはとてもeaslyではありません。3Dの変換行列から 'up vector'を計算する
問題は、以下の通りです:
「アップ」ベクトルは、アイデンティティの回転行列のためにとマトリックスと回転しますが、スケールも翻訳しない(0、0、1)です。あなたが単純な回転行列を持つ場合、手続きは簡単です(ベクトルと行列を掛ける)。しかし、行列にも平行移動と回転が含まれている場合(たとえば、いくつかの他の行列を乗算して生成された場合)、ベクトルは平行移動および拡大縮小されるため、これは機能しません。
私の質問は、単一の変換行列からベクトルを(「0」、「1」、「0」)が恒等行列に対応するようにする方法です。
"アイデンティティローテーション行列"のようなものはありません。定義によって、恒等行列は、特定の基盤内でベクトルを未形成にする。 – Janie
私はあなたの質問を理解していません。あなたは世界の "上"か、地元の "上"を望んでいますか?いくつかの例題の行列を使って何をしているのか理解できますか? – Nosredna
行列世界座標でのY軸ベクトル(上)は、記述した方法で取得するか、マトリックスから直接抽出して取得します。適用後に探しているものでない場合は、http://stackoverflow.com/a/25216549/2521214を参照してください。より多くの行列があるならば、アップベクトルが必要ではなく、代わりに何か他のものを必要とします。その場合は、より近くに画像を追加してください。 – Spektre