2

これはすべてOpenGL ES 2.0にあります...

ゲームの 3D シーンの上に HUD を配置できるように、3D 透視投影と 2D 正射投影を組み合わせようとしています。

ゲームは横向きで実行され、デバイスの向きを処理する方法が本当に混乱しています。

適切な投影マトリックスを使用して 3D のものをレンダリングし、modelView マトリックスと照明を 90 度回転させて、3D シーンが正しい方向になるようにします。このビットはすべて正常に動作します。

私の問題は、2D プロジェクション マトリックスを適切に設定する方法がわからないため、デバイスが横向きで左側にホーム ボタンがある場合、原点が左上隅にあることです。

これが発生するように正射行列を正しく構築するにはどうすればよいですか? 私は現在これを使用しています

// OrthoMatrix does the same as the old GLOrthof function (left, right, bottom, top, near, far);
projectionMatrix2D = mat4::OrthoMatrix(0, screenWidth, screenHeight , 0, -1.0, 1.0);

ただし、デバイスが縦向きでホームボタンが下部にある場合、これは原点を左上に配置するだけであり、デバイスを手で回転させると、すべてが横向きになります.

2D 射影行列を変更しようとする必要がありますか、それとも他に何かする必要がありますか?

4

1 に答える 1

0

私はこれを Gamedev で尋ねましたが、より一般的な方法で、役立つ回答を受け取りました。

さまざまな画面サイズを処理する正射投影ディスプレイを作成するにはどうすればよいですか?

于 2011-12-06T15:30:04.403 に答える