openGL パースペクティブを使用する場合、fovy から fovx を計算する方法がよくわかりません。さまざまな場所でさまざまなことを読んでいますが、見つけた方法を使用しても正しい動作が得られません。カメラの焦点とアスペクト比を考慮して、カメラの焦点を計算する方法を教えてください。他のデータが必要な場合は、必要なものをお知らせください。よろしくお願いします!
7583 次
4 に答える
11
正しい:
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)
「合理的な」視野/側面の場合、単純な方法は「合理的に」真実に近いですが、極端な側面がある場合は、望ましくない視野 x > 180 度になります。
于 2011-03-31T18:46:55.807 に答える
3
ここに良いリンクがあります:
http://wiki.panotools.org/Field_of_View
アスペクト比は視野比と同じではないことに注意してください。視野角を関連付けるには、このページに記載されている適切な関係を使用する必要があります。
于 2013-01-02T02:50:50.003 に答える
1
ジャワ:
double d = (viewportHeight * 0.5) / Math.tan(Math.toRadians(fovY * 0.5));
fovX = (float) (2 * Math.toDegrees(Math.atan((viewportWidth * 0.5) / d)));
于 2011-11-04T11:12:45.773 に答える
-1
ここの式を見ましたか?:
于 2011-03-31T18:46:32.440 に答える