Opengl es glPushMatrix与opengles
我有一个关于[glPushMatrix]、矩阵变换和OpenGL ES的问题。GLSL表示,在OpenGL ES下,必须计算矩阵:Opengl es glPushMatrix与opengles,opengl-es,Opengl Es,我有一个关于[glPushMatrix]、矩阵变换和OpenGL ES的问题。GLSL表示,在OpenGL ES下,必须计算矩阵: However, when developing applications in modern versions of OpenGL and OpenGL ES or in WebGL, the model matrix has to be computed. 及 据我所知,gl\u ModelViewMatrix并非在所有OpenGL ES规范下都可用。那么
However, when developing applications in modern versions of OpenGL and
OpenGL ES or in WebGL, the model matrix has to be computed.
及
据我所知,
gl\u ModelViewMatrix
并非在所有OpenGL ES规范下都可用。那么,像glMatrixMode
,glRotate
,…,这样的函数在那里仍然有效吗?我可以用它们来计算模型矩阵吗?如果没有,如何处理这些转换矩阵?首先:您不应该在常规OpenGL中使用矩阵操作函数。在旧版本中,它们只是不灵活的,而且是多余的,而在新版本中,它们被完全删除了
第二:你提到的来源是一本维基百科,这意味着它不是权威来源。在本Wikibook中,它的编写是为了适应GLSL的所有版本,其中一些版本(主要用于OpenGL-2.1)具有这些变量
您可以通过自己计算矩阵来处理这些矩阵(不,这并不慢,OpenGL的矩阵不是GPU加速的),然后通过glLoadMatrix/glMultMatrix(OpenGL的旧版本)或着色器统一将它们传递给OpenGL。首先:您不应该在常规OpenGL中使用矩阵操纵函数。在旧版本中,它们只是不灵活的,而且是多余的,而在新版本中,它们被完全删除了 第二:你提到的来源是一本维基百科,这意味着它不是权威来源。在本Wikibook中,它的编写是为了适应GLSL的所有版本,其中一些版本(主要用于OpenGL-2.1)具有这些变量
你通过自己计算矩阵来处理这些矩阵(不,这并不慢,OpenGL的矩阵不是GPU加速的),然后通过glLoadMatrix/glMultMatrix(OpenGL的旧版本)或着色器统一将它们传递给OpenGL。如果你打算在Android中这样做,那么看看这个。
它具有设置视图、视锥体、变换矩阵以及一些矩阵操作的功能。如果您计划在Android中执行此操作,请查看此功能。
它具有设置视图、视锥体、变换矩阵以及一些矩阵操作的功能。谢谢。你知道有哪个Java库可以处理转换矩阵运算吗?@JakubM.:不幸的是没有,但是你可以使用我的C“库”,它涵盖了最重要的向量、矩阵和四元数运算,并将其翻译成Java。我必须承认,我不是一个真正的Java人,我觉得和它一起工作不舒服。谢谢,那会很有用的!通常我会使用纯C,但我计划使用Android,因此Java是不可避免的,你有一个小错误:你使用
vec3_len
(第42行),但定义vec3_length
,与vec4_…
@VictorMaiaAldecôa相同:现代的方法是使用真正的数学库进行矩阵计算。然后将准备好的矩阵加载到OpenGL中。在现代OpenGL中作为着色器统一使用,在旧OpenGL中使用glLoadMatrix。流行的库是GLM和Eigen。我还写了一个名为linmath.h的,但我不再积极维护它(不过我会合并有用的补丁)。谢谢。你知道有哪个Java库可以处理转换矩阵运算吗?@JakubM.:不幸的是没有,但是你可以使用我的C“库”,它涵盖了最重要的向量、矩阵和四元数运算,并将其翻译成Java。我必须承认,我不是一个真正的Java人,我觉得和它一起工作不舒服。谢谢,那会很有用的!通常我会使用纯C,但我计划使用Android,因此Java是不可避免的,你有一个小错误:你使用vec3_len
(第42行),但定义vec3_length
,与vec4_…
@VictorMaiaAldecôa相同:现代的方法是使用真正的数学库进行矩阵计算。然后将准备好的矩阵加载到OpenGL中。在现代OpenGL中作为着色器统一使用,在旧OpenGL中使用glLoadMatrix。流行的库是GLM和Eigen。我还写了一个名为linmath.h的,但我不再积极维护它(不过我会合并有用的补丁)。谢谢!顺便问一下,你知道我是否可以将这个库导入到一个不是Android而是普通Java应用程序的应用程序中吗?(我问的是可移植性,而不是许可)只要在Java构建路径中包含Android库,我看不出为什么不可以。谢谢!顺便问一下,你知道我是否可以将这个库导入到一个不是Android而是普通Java应用程序的应用程序中吗?(我问的是可移植性,而不是许可)只要在Java构建路径中包含Android库,我看不出为什么不。
In some versions of OpenGL (ES), a built-in uniform variable
gl_ModelViewMatrix is available in the vertex shader