我试图将我的OpenGL ES 1应用程序转换为OpenGL ES 2应用程序,以便能够使用着色器.现在我使用glOrthof函数来获得“真实大小的视口”,这样我就可以将顶点放在OpenGL视图中的“实际”像素上.
glOrthof(0,_frame.size.width,_frame.size.height,-1,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.
原文地址:https://www.jb51.cc/iOS/335175.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。