我试图将我的OpenGL ES 1应用程序转换为OpenGL ES 2应用程序,以便能够使用着色器.现在我使用glOrthof函数来获得“真实大小的视口”,这样我就可以将顶点放在OpenGL视图中的“实际”像素上.
glOrthof(0,_frame.size.width,_frame.size.height,-1,1);
我无法在OpenGL ES 2中找到如何实现这一点,是否有人可以告诉我如何做到这一点?
如果没有,有没有人有一个良好的OpenGL ES 1到OpenGL ES 2教程/解释的链接?
解决方法
glOrtho方法除了创建一个新矩阵并将当前投影矩阵乘以该矩阵之外别无其他.使用OpenGL ES 2.0,您必须自己管理矩阵.为了复制glOrtho行为,您需要在顶点着色器中为投影矩阵提供一个均匀,然后将顶点乘以.通常你也有一个模型和一个视图矩阵(或一个组合的模型视图矩阵,就像在OpenGL ES 1中一样),你可以在投影变换之前转换你的顶点:
uniform mat4 projection; uniform mat4 modelview; attribute vec4 vertex; void main() { gl_Position = projection * (modelview * vertex); }
glOrtho构造的特定投影矩阵可以找到here.