1. ホーム
  2. opengl

[解決済み] gluPerspectiveパラメータ - その意味するところは?

2022-02-26 01:14:44

質問

はどうなんでしょうね。 gluPerspective パラメータを使用します。

すべての例で、私は fovy は45-60度程度に設定されています。 別の値に設定してみても、オブジェクトは消えてしまうだけです。 どうすればいいのでしょうか?

aspect の値は常に比率であるべきですが、なぜそれを変更する必要があるのでしょうか?

zNear, zFar - また、通常の値は10前後で500以上ですが、これは何を反映しているのでしょうか?

解決方法は?

4つのパラメータを定義する目的は ビューフラストラム のようなものです。

このため、パラメータを使って4x4の行列を計算し、その行列を使って各頂点をいわゆるクリップ空間に変換します。このとき,ある頂点が錐体の中にあるかどうかを調べるのは簡単です.)

視野 パラメータは、基本的にカメラの位置だけでなく、画面の上部&ampを通過する平面との間の角度であり、カメラの位置と画面の下部を通過する別の平面。この角度が大きいと、より多くの世界を見ることができますが、同時に、見ることができるオブジェクトは小さくなります。

その影響を観察するために、キー操作でfovを徐々に増やしたり減らしたりできる簡単なアプリをコーディングして、球体やその他の基本的なオブジェクトをレンダリングし、fovを変更するとどうなるかを見てみるといいと思います。

アスペクト比 は、ビューポートのアスペクト比です。(上の図では、ビューポートはクリッピング平面に近いところにあります)ビューポートのアスペクト比が異なる場合があるので、これを自由に定義できることは理にかなっています。

zNear & zFarについて の値は、カメラ位置と近傍および遠方のクリッピング平面の距離をそれぞれ定義します。zNear よりもカメラに近いもの、または zFar よりも遠いものは表示されません。両方の値は > 0 でなければならず、明らかに、zFar > zNear となります。 zFar は、理想的には、レンダリングしたいものがすべて見えるように選択すべきですが、必要以上に大きくすると、深度バッファの事前設定 & が無駄になり、z-fighting と呼ばれるちらつき効果につながることがあります。同様に、zNearをカメラに近づけすぎると、同じ効果を引き起こす可能性があります - 実際、妥当なzNear値を持つことはzFarよりも重要です。なぜこのような現象が起こるのかを正確に知りたい場合は、次のような詳細な説明を読むとよいでしょう。 これ または これ