私は周りを見回してきましたが、これに対する答えを見つけることができませんでしたが、私が行ったことは立方体/ボックスを作成することであり、見ている場所に応じてカメラが押しつぶされたり伸びたりします. 画面が完全に正方形の場合、これはすべて解決するように見えますが、16:9 を使用している場合は、形状が伸びたり縮んだりします。これを変更することは可能ですか?
16:9
これは 500px X 500px です
副次的な質問として、背景の「空」の色を変更することは可能でしょうか?
OpenGL は立方体 [-1,1]^3 を使用して、正規化されたデバイス座標で円錐台を表します。ビューポート変換は、これを x および y 方向に [0,width] および [0,height] にストレッチします。したがって、正しい出力アスペクト比を得るには、頂点をクリップ スペースに変換するときにビューポートの寸法を考慮する必要があります。通常、これは射影行列の一部です。古い固定機能gluPerspective()
関数には、特定のアスペクト比の錐台を直接作成するパラメーターがあります。コードを表示しないため、実際に何を変更する必要があるかを示唆するのは困難ですが、x と y に沿った単純なスケール操作に要約されるため、非常に簡単なはずです。
副次的な質問: その色は、カラー バッファをクリアするときに設定される値によって定義されます。で色を設定できますglClearColor()
。