1
我想在android平台上开发使用opengles2
。但我在GLES2/gl2.h
头文件中找不到glMatrixMode
方法,但我可以在GLES/gl.h
中找到它。我是否应该在gl.h
的同时包括gl2.h
?在opengles2中是否需要矩阵模式?什么是opengl es 2没有设置矩阵模式的方法?
我想在android平台上开发使用opengles2
。但我在GLES2/gl2.h
头文件中找不到glMatrixMode
方法,但我可以在GLES/gl.h
中找到它。我是否应该在gl.h
的同时包括gl2.h
?在opengles2中是否需要矩阵模式?什么是opengl es 2没有设置矩阵模式的方法?
OpenGL-ES-2中没有矩阵堆栈。它已被完全删除。现代OpenGL(OpenGL-3核心及更高版本)也是如此。
你应该自己管理矩阵,这是每一个严肃的3D图形应用程序多年来的方式。 < = OpenGL-2.1和OpenGL-ES-1的矩阵堆栈从来没有功能完备,并且使用起来很麻烦。甩掉包袱。
有很多库实现3D图形矩阵数学。 Google for“GLM”,“Eigen”或“linmath.h”
那么这意味着我不需要关心矩阵模式了吗?如果我使用提供的API来绘制图片,那么它总是保持在正确的矩阵模式? –
@ user674199:不再有矩阵模式。有点合理,因为无论如何你必须提供一个顶点着色器,而你提供的任何矩阵的语义完全由着色器定义。通常情况下,您将提供3个矩阵:模型视图,投影和法线变换矩阵(法线变换是模型视图的逆转置)。 – datenwolf
我会把我的客户端端程序扔进戒指:[matrix.h](http://ezekiel.vancouver.wsu.edu/~cs442/util/matrix.h),[matrix.c](http: //ezekiel.vancouver.wsu.edu/~cs442/util/matrix.c)。使用'glUniformMatrix4fv'将你的矩阵加载到GL中供着色器使用。 – wcochran