5

在我的 iphone 应用程序中,我需要将 3d 场景投影到屏幕的 2D 坐标中以进行一些计算。我的对象经历了各种旋转、平移和缩放。所以我想我需要先将顶点与 ModelView 矩阵相乘,然后我需要将它与正交投影矩阵相乘。

首先我在正确的轨道上吗?

我有模型视图矩阵,但需要投影矩阵。ES 2.0 中是否有 glOrtho() 等价物?

4

2 回答 2

13
mat4 projectionMatrix = mat4( 2.0/768.0, 0.0, 0.0, -1.0,
                              0.0, 2.0/1024.0, 0.0, -1.0,
                              0.0, 0.0, -1.0, 0.0,
                              0.0, 0.0, 0.0, 1.0);                        

gl_Position = position;
gl_Position *= rotationMatrix;
gl_Position.x -= translateX;
gl_Position.y -= translateY;
gl_Position *= projectionMatrix;

对于固定分辨率(在我的 iPad 情况下为 1024x768),我使用了这个矩阵,一切都像魅力一样 :) 以下是您需要在矩阵中放入哪些值的完整描述:glOrtho.html

于 2010-06-02T11:11:10.880 回答
3

手册页描述了等效操作,因此glOrtho()只要您手边有矩阵,就应该能够重新实现它。

于 2010-05-17T08:39:39.900 回答