2

这一切都在 OpenGL ES 2.0 中......

我正在尝试将 3D 透视投影与 2D 正交投影混合,这样我就可以在游戏中的 3D 场景顶部放置一个 HUD。

游戏以横向运行,我真的很困惑如何处理设备方向。

我正在使用合适的投影矩阵渲染 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 回答