glPushMatrix和OpenGL ES

时间:2012-03-15 07:52:57

标签: opengl-es

我有一个关于[glPushMatrix]的问题,以及矩阵变换和OpenGL ES。 GLSL guide表示在OpenGL ES下,必须计算矩阵:

However, when developing applications in modern versions of OpenGL and 
OpenGL ES or in WebGL, the model matrix has to be computed. 

In some versions of OpenGL (ES), a built-in uniform variable 
gl_ModelViewMatrix is available in the vertex shader

据我了解,所有 OpenGL ES规范下都没有gl_ModelViewMatrix。那么,像glMatrixModeglRotate,......这样的函数在那里仍然有效吗?我可以用它们来计算模型矩阵吗?如果没有,如何处理这些转换矩阵?

2 个答案:

答案 0 :(得分:2)

首先:您不应该在常规OpenGL中使用矩阵操作函数。在旧版本中,它们只是不灵活且冗余,而在较新版本中,它们已被完全删除。

第二:你提到的来源是Wikibook,这意味着它不是一个授权来源。在这个Wikibook的情况下,它被编写为适应所有版本的GLSL,其中一些主要用于OpenGL-2.1,有这些变量。

你自己计算它们来处理这些矩阵(不,这不慢,OpenGL的矩阵内容不是GPU加速),并通过glLoadMatrix / glMultMatrix(旧版OpenGL)或着色器制服将它们传递给OpenGL。 / p>

答案 1 :(得分:1)

如果您计划在Android中执行此操作,请查看此内容。 http://developer.android.com/reference/android/opengl/Matrix.html

它具有设置视图,平截头体,变换矩阵以及一些矩阵运算的功能。