2011-12-20 6 views
0

私はhereと同じ問題があるようです(無関係な議論が多いので、 "why are my spheres distorted when they get near the edge of the window?"を検索してください)。このリンクの解決策は、FOVを10に大幅に下げました。これは、私のシーンがz方向に非常に浅くなるように思えます。誰かが他のアスペクト比はオフであり得ることを述べたが、私はそれについて非常によく分からない:gluspheres looking longong

gluPerspective(60, (GLfloat)width/(GLfloat)height, 1, -200); 

とにかく、60のFOVで、私のシーンは次のようになります。

boo

これを45に変更すると効果がありますが、球体はエッジの近くで歪んで見えます。どうしてこれなの?この歪みは避けられないのでしょうか?

+0

よく考えてみるのは簡単なことではありません。良い答え(あるいは他の誰か)を定式化できない限り、gluPerspectiveへのzFarパラメータは**正の**値でなければならないことに言及しましょう。 –

答えて

2

これはなぜですか?

これは、アフィン、透視投影の動作方法です。

は、この歪みは避けられないですか?アフィン投影YESの場合

しかし、頂点シェーダを使用すると、角度ベースの投影を実装できます。しかしながら、それらは、幾何形状が十分にテッセレーションされることを必要とする。あなたのバックグラウンドボックスのような長い歪みエッジは分解されなければなりません。テッセレーションシェイダーが役立ちます。もう1つの方法は、90°FOVの5つの2次ビューをキューブマップにレンダリングし、そのキューブマップから角度投影を描画することです。

関連する問題