このPerspective行列の3番目の行の目的は何ですか?元のz座標を維持しても、他の点の前に描画する点を決めることはできませんか? cell(3,3)を1、cell(3,4)を0に置き換えると、ポイントは正しいxとyの位置に描画され、4番目の座標は均等であるとみなされます。私は何が欠けていますか?ありがとう!彼らは比較可能性を得るためにあるようPerspective投影行列の3番目の行の理解
答えて
はい、理論的には、あなたは、z値を保つことができます。しかし、練習はそれを許さない。そして、実際には、このマトリックスはそれ自身では機能しません。しかし、私はそれに後でしましょう。
あなたが見ることができるように、得られた深さのままである:ここで入力されたz座標対1のニアクリッピング面を仮定し、Z投影結果として生じる図5のファークリッピング平面であります1と5の間の同じ範囲ですが、少し座屈しています。
投影後に得られるz値(正規化されたデバイス座標)がデプスバッファに書き込まれます(OpenGLはウィンドウ座標への追加変換を実行しますが、今は無視します) 。深度バッファは、通常24または32ビットの固定解像度を有する。理論的には、深さを浮動小数点数としてエンコードできますが、これは多くの精度を浪費します。そして、ちらつきを避けるために、多くの場合、正確な深度バッファが不可欠です。
代わりに、zバッファはznearとzfarの間の適切な範囲にスケーリングされた何らかの種類の整数としてエンコードされます。従って、上図の縦軸は等間隔に分割されている。今度は、座屈により、深度軸上のより広い範囲に広がるznearに近い点が得られます。したがって、特定のz範囲は、その点がカメラの近くにある場合にはより大きな奥行き範囲で、遠くにある場合にはより小さい奥行き範囲で符号化される。これにより、カメラの近くで精度が高くなります(奥行き軸は一様に細分化されています)。これは通常あなたが望むものです。カメラに非常に近いオブジェクトは非常に詳細に見ることができ、深度バッファの問題は明らかです。しかしながら、非常に遠くにある物体ははっきりと見ることができず、高い深度の分解能の必要はない。
前述のように、このマトリックスはそれ自身で直接使用することはできません。これは、正規化されたデバイス座標のz値がDirectXでは[0,1]の範囲に、OpenGLでは[-1,1]の範囲にあるとみなされるためです。ここで、下限はニアクリッピングプレーンの深さを表し、 upperは遠いクリッピング平面を表します。したがって、これらのAPIは、いくつかの追加の変換が適用されない限り、結果の深さでは機能しません。
- 1. libGDX投影行列の理解
- 2. 投影行列
- 3. GLSLジオメトリシェーダと投影行列
- 4. Wikitudeカメラ投影行列ユニティ
- 5. 正投影行列2.0
- 6. MongoDBの/ C#の投影誤理解
- 7. OpenGL 2D投影行列の問題
- 8. MATLAB - 3番目の行列次元の連結
- 9. np行列のリスト理解
- 10. 1列目(行なし)と2列目(各列に3行)
- 11. アンドロイドの画面上のオブジェクト投影の回転行列のリスト
- 12. 行列のi行目の要素はvecotorのi番目の要素です。
- 13. OpenCV:warpPerspective/perspective変換を理解する
- 14. テーブルの3番目の列から行の値を取得する
- 15. ファイル内の3番目の列がユニーク
- 16. 1行目 - 1セル目、2行目 - 2セル目、3行目 - 3セル目
- 17. Pythonの行列:2列目を行列の行に置き換えて3列目にデータを入れよう
- 18. htmlテーブル行の3番目の要素を取得するVBA
- 19. 行内の3番目のセルごとに合計
- 20. 各層のKerasウェイト行列の理解
- 21. 2行目のdiv、2番目の行は1番目の行に収まらない
- 22. 行列の乗算 - 表示/投影、ワールド/プロジェクションなど
- 23. 遠近法投影行列の作成方法(APIなし)
- 24. OpenCVのOpenGL透視投影行列わずかな誤差
- 25. ブーストストラップ3、3列、2番目に配置
- 26. Matlab解剖位置と回転にカメラ投影行列を抽出する
- 27. この.htaccessファイルの2行目と3行目はどのような処理を行いますか?
- 28. GridView - 3番目の行を選択できません
- 29. MatlabberのN番目の試みはR:ベクトル対単一列/行行列
- 30. jQuery DataTables 2行目:最初の行の列名とソート、2番目の行のフィルタリング
この行は、[near、far]の範囲を[0,1]にスケーリングしてクリッピングすると考えています。この変換の後、見ることになるすべてが[0,1]の範囲にあり、残りは無視されます。 – kolenda