在我的 iphone 应用程序中,我需要将 3d 场景投影到屏幕的 2D 坐标中以进行一些计算。我的对象经历了各种旋转、平移和缩放。所以我想我需要先将顶点与 ModelView 矩阵相乘,然后我需要将它与正交投影矩阵相乘。
首先我在正确的轨道上吗?
我有模型视图矩阵,但需要投影矩阵。ES 2.0 中是否有 glOrtho() 等价物?
在我的 iphone 应用程序中,我需要将 3d 场景投影到屏幕的 2D 坐标中以进行一些计算。我的对象经历了各种旋转、平移和缩放。所以我想我需要先将顶点与 ModelView 矩阵相乘,然后我需要将它与正交投影矩阵相乘。
首先我在正确的轨道上吗?
我有模型视图矩阵,但需要投影矩阵。ES 2.0 中是否有 glOrtho() 等价物?
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
手册页描述了等效操作,因此glOrtho()
只要您手边有矩阵,就应该能够重新实现它。