2010-05-17 179 views
5

在我的iPhone应用程序中,我需要将3D场景投影到屏幕的二维坐标中进行一些计算。我的对象经历了各种旋转,翻译和缩放。所以我想我需要先用ModelView矩阵乘顶点,然后我需要将它乘以正交投影矩阵。相当于glOrtho()的OpenGL ES 2.0?

首先我在正确的轨道上?

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

回答

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 1024×768)的固定分辨率我用这个矩阵,一切工作般的魅力:) 以下是完整说明什么价值,你需要把你的矩阵:glOrtho.html

+0

谢谢兄弟这是非常有用的示例 – sage444 2015-04-04 09:54:09

3

manual page对于glOrtho()描述了等效的操作,所以只要你有矩阵的方便应该可以重新实现它。

+1

404找不到页面 – Nande 2014-07-15 21:35:23

+1

@Nande谢谢,修复! – unwind 2014-07-30 16:38:56