2012-03-10 6 views
1

AndroidでOpenGL ES20を使って球を1つ作成しました。透視投影のenvでは、球を[-1.5、-2、-2]から[-1.5,2 -2]にアニメートします。問題は、錐台境界に達すると球が楕円のように見えることです。実際、[0、0、-2]にあるときは円のようにしか見えませんが、[0,0]から離れるほど楕円のように見えます。私のOpenGL球が楕円のように見える理由

これは標準的な動作ですか?私は、1つの球体がすべての視野角で円のように見えるべきだと考えました。助けてもらえますか?

The sphere

答えて

1

あなたはあなたの視野を軽減すべきです。あなたが見せていることは正常であり、3d投影のやや人工的な性質の副作用です.3D投影は、視聴者がスクリーンから一定の距離に座っており、その目がスクリーンの中心からzに沿って直接配置されていることを前提としています正確に前方に進む。実際のカメラと同じエフェクトの説明については、関連する問題described hereを参照してください。

暗黙的なデフォルトの視界は、しばしば90度です。しかし、あなたがあなたの手に電話を持っているとき、あなたのビジョンの90度をはるかに下回ります。

glFrustumを使用している場合は、左、右、上、下に小さい値を指定してみてください。クイックフィックスとして、投射行列を計算した後に、例えばglScalefを投射スタック(またはES 2相当物)に投げてください。

関連する問題