1. ホーム
  2. opengl

[解決済み] FOVXの計算(openGL)

2022-02-24 03:08:35

質問

openGLのパースペクティブで作業する際、fovyからfovxを計算する方法がよくわかりません。 いろいろなところでいろいろなことを読みましたが、私が見つけたどの方法を使っても正しい動作は得られません。 そこで、カメラのfovyとアスペクト比が与えられたら、どのようにカメラのfovxを計算したらよいのか、どなたか教えてください。 もし他のデータが必要であれば、必要なものだけを教えてください。 ありがとうございました。

どのように解決するのですか?

正しい。

fieldOfViewX = 2 * atan(tan(fieldOfViewY * 0.5) * aspect)

特に大きなアスペクトについては、以下の@gmanのコメントを参照してください。

Aspect ratio === width/height
fovy ~= "height" 
==> fovx = fovy * aspect

テストします。

Fovy = 60 degs
Aspect = 4:3 ~= 1.33
Fovx = 60*1.33 = 80
80/60 = 4:3 (fovs match, yay)

しかし、極端なアスペクトの場合、180°のアスペクトを得ることになり、これは好ましくありません。