我开始学习OpenGL与iOS一起使用它。我想知道为什么glMatrixMode
之类的方法或GL_PROJECTION
中的<OpenGLES/ES1/gl.h>
等常量,而<OpenGLES/ES2/gl.h>
中却没有。{1}}。为什么?在使用OpenGL ES 2.0而不是1.1时,您是否强制编写自己的着色器?
答案 0 :(得分:5)
固定功能管道(包括内置矩阵)完全取自OpenGL ES 2.0,因此常量如GL_PROJECTION,以及glPushMatrix,glRotate,glMatrixMode等功能已被删除。
此更改要求您编写着色器并将自己的模型和投影矩阵传递/计算到它。虽然ES 2为您提供了更大的灵活性,但它也使得使用旧代码变得非常困难并且作为初学者开始使用。
如果您不完全了解投影和模型矩阵,您可能希望坚持使用ES 1.
可以找到带有进一步解释的演示文稿here