[解決済み] 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°のアスペクトを得ることになり、これは好ましくありません。
関連
-
[解決済み] FreeGLUTとGLFWの違いは何ですか?[クローズド]
-
[解決済み] glBlitFramebufferを使用してテクスチャを表示する
-
[解決済み] 頂点シェーダとフラグメントシェーダにおけるgl_Colorとgl_FrontColorの関係を教えてください。
-
[解決済み] glGetShaderiv() GL_COMPILE_STATUS GL_FALSE を返す
-
[解決済み] glRotate(angle,x,y,z), この場合のx,y,zは何ですか?
-
[解決済み] gl_PointSizeの動作について
-
[解決済み] コンセプト:glDrawBufferとglDrawBuffersの使い分けは?
-
[解決済み] 最新のOpenGLでレイトレーシングを行うには?
-
[解決済み] OpenGLのフレームバッファとレンダーバッファの概念と違いについて教えてください。
-
[解決済み] glActiveTextureとglBindTextureの違いと関係
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] X リクエストが失敗したときのエラー。BadValue (整数パラメータが操作の範囲外です)
-
[解決済み] Emscripten/OpenGLのコードで「glDrawArrays: attribute 1の範囲外の頂点にアクセスしようとする」(ネイティブC++では動作する) [終了しました]
-
[解決済み] ハードウェアカーソルとはどのようなもので、どのように機能するのですか?
-
[解決済み] OpenGL - GLenumはどのように符号なし32ビット整数ですか?
-
[解決済み] gl_FragColorとout vec4カラーを使用する?
-
[解決済み] glRotate(angle,x,y,z), この場合のx,y,zは何ですか?
-
[解決済み] 最新のOpenGLで複数のテクスチャをレンダリングするには?
-
[解決済み] gl_PointSizeの動作について
-
[解決済み] OpenGL - glDepthMaskの使い方についての質問です。
-
[解決済み] OpenGLでglLoadIdentity()は何をするのですか?