私は転送する4x4行列の浮動小数点値をピギーバックしたいと思っています。問題の行列は、さまざまなxyzベクトル変換に使用されます。私が理解している限り、行列の最初の3x3は回転とスケールの変換を容易にし、最初の3行の4番目の値は変換のピボットをオフセットし、最後の行の最初の3つの要素は位置のオフセットを行いますが、要素ですか?私が見た限りでは、それは常に1であり、全く何もしません。4x4行列の最後の要素の重要度?
2
A
答えて
8
ポイントが列ベクトルで、最初の3行の最後の要素が変換を決定するという規則がある場合、最下行の最初の3要素はではなく、位置オフセットです。変換行列の4番目の行は、カメラが3D点を2Dビューポートにマッピングする方法である透視投影に使用されます。 4×4行列をポイントをマッピングするために使用される方法のスケッチ:
result = 4x4 matrix * point
[ x' ] [ Rxx Rxy Rxz Tx ] [ x ]
[ ] [ ] [ ] -> R** is the rotation/scaling matrix
[ y' ] [ Ryx Ryy Ryz Ty ] [ y ]
[ ] = [ ] * [ ] T* is the translation vector
[ z' ] [ Rzx Rzy Rzz Tz ] [ z ]
[ ] [ ] [ ] P* fixes the camera projection plane
[ w' ] [ Px Py Pz Pw ] [ w ]
-> x' = dot_product3([Rxx,Rxy,Rxz], [x,y,z]) + Tx * w
-> y' = dot_product3([Ryx,Ryy,Ryz], [x,y,z]) + Ty * w
-> z' = dot_product3([Rzx,Rzy,Rzz], [x,y,z]) + Tz * w
-> w' = dot_product4([Px,Py,Pz,Pw], [x,y,z,w])
最終3D点におけるステップ - > 2D画面マッピングが4(w'
)座標により分割することである - ので、標準的な幾何学的変換のために最後の行は通常[0,0,0,1]
であり、w
の座標は変更されません。
最下行の最初の3要素が0
ではない場合、マトリックスは通常、3D空間の奇妙で不均一な歪みを生成します。そして、最後の要素を一様な逆スケーリングファクタとして使用することは可能ですが、左上の3x3サブマトリックスでスケーリングを行い、カメラ専用に下の行を残しておく方がよいでしょう。
関連する問題
- 1. 最後の要素の角度フィルタ
- 2. 配列の最後の要素に要素を追加する
- 3. 最後の要素のString.join配列
- 4. C#は、最後の配列要素
- 5. パイソン:前の行の最後の要素と後部行の最初の要素タイトルとして
- 6. ボタンの最後の要素
- 7. 最初の要素と最後の要素のjqueryスライダアニメーション
- 8. C - 行列の最後の要素を変更する
- 9. <picture>要素srcsetオーダー重要度
- 10. djangoテンプレートフィルタchaning - 最後の要素の最後の要素を取得
- 11. numpy行列の最大要素/サイズ?
- 12. jQueryの:要素の最初の子要素の最初と最後の部分
- 13. SASSは最後の要素から最後の要素を選択します
- 14. 最終参照変数の重要度
- 15. すべての要素の幅+最後の要素の幅
- 16. 最後の要素のクラス名の次の要素 - CSS3
- 17. data.tableのPOSIXct列の最大/最後の要素は?
- 18. ベクトル要素のループ、要素が行列
- 19. R:リスト内の各要素の最後のサブ要素にアクセス
- 20. 角度要素の最後の子を削除する方法
- 21. Mysqlの最初の要素の情報と最後の要素の数
- 22. ループ内のリストの最後の要素
- 23. Sqliteのテーブルの最後の要素
- 24. 最後の特定のノード/要素の後にXML要素を挿入する
- 25. Java最後の配列要素を最初に移動する
- 26. 最初の要素と最後の要素のkeyCodeを無効にする
- 27. 配列要素の後ろに一重引用符を追加
- 28. 要素フォーカスの要素の角度バインドクラス
- 29. 前の配列要素を上書きする文字列の2D配列の最後の要素
- 30. 角度配列、インデックスによるスプライシングが、それは常に最後の要素
どの施設/ツール/ API /など。あなたはこれを使っていますか?これは数学/行列の標準ではなく、あなたがこの行列も渡しているものの慣例です。 – RBarryYoung
私の見解はスケーリングをコントロールしていると思います。 – RBarryYoung
行列はd3dx関数を使用して作成され、hlsl環境で適用されますが、スケーリングも私の最初の考えでしたが、ランダムベクトルで100個のランダム行列を試して、最後の値を変更しても何もしませんでした –