Opengl 如何在GLSL 1.5中检索ModelView矩阵?

Opengl 如何在GLSL 1.5中检索ModelView矩阵?,opengl,glsl,Opengl,Glsl,我一直在阅读openGL 1.5的规范,发现任何对曾经是持有ModelView矩阵引用的变量的引用(如gl_ModelViewMatrix)都已被弃用,并且仅在某种兼容模式下可用(我的GPU恰好不支持这种模式) 我看到了一些示例,首先检索ModelView矩阵或创建一个矩阵,然后将其作为统一变量发送回GPU 现在这一切在我看来都是倒退;即使对于简单的顶点着色器,在许多情况下,您也会希望在几何体上使用某种变换 所以我现在真的很想知道;有没有办法使用GLSL 1.5从顶点着色器中获取当前ModelV

我一直在阅读openGL 1.5的规范,发现任何对曾经是持有ModelView矩阵引用的变量的引用(如gl_ModelViewMatrix)都已被弃用,并且仅在某种兼容模式下可用(我的GPU恰好不支持这种模式)

我看到了一些示例,首先检索ModelView矩阵或创建一个矩阵,然后将其作为统一变量发送回GPU

现在这一切在我看来都是倒退;即使对于简单的顶点着色器,在许多情况下,您也会希望在几何体上使用某种变换


所以我现在真的很想知道;有没有办法使用GLSL 1.5从顶点着色器中获取当前ModelView矩阵?

OpenGL-3 core完全放弃了矩阵堆栈,即内置的ModelView、投影、纹理和颜色矩阵。现在,您需要实现矩阵数学并通过自选制服提供矩阵。

OpenGL-3 core完全放弃了矩阵堆栈,即内置的modelview、投影、纹理和颜色矩阵。现在希望您实现矩阵数学并通过自选制服提供矩阵。

核心openGL中没有内置的矩阵系统/库-自3.+版本以来。 很多人对openGL中的“巨大变化”有着相似(不好)的看法

您必须使用自己的函数集来执行矩阵计算。请参见库,如:或中的

总之,在学习时,在OpenGL中使用矩阵函数非常有用。现在你必须寻找其他的解决方案。。。
另一方面,对于通常有自己的数学库的游戏引擎或游戏框架来说,这不是一个问题。因此,对他们来说,“新”的OpenGL更易于使用。

核心OpenGL中没有内置的矩阵系统/库-自3.+版本以来。 很多人对openGL中的“巨大变化”有着相似(不好)的看法

您必须使用自己的函数集来执行矩阵计算。请参见库,如:或中的

总之,在学习时,在OpenGL中使用矩阵函数非常有用。现在你必须寻找其他的解决方案。。。
另一方面,对于通常有自己的数学库的游戏引擎或游戏框架来说,这不是一个问题。因此,对他们来说,“新”的OpenGL更容易使用。

这就是原因。不确定我是否喜欢它。@Bartvbl:嗯,除了加载其他地方用glLoadMatrix生成的矩阵外,没有任何实际应用程序实际使用矩阵堆栈。每个动画系统都会将动画数据作为随时可用的矩阵发出。对于视图计算,您已经有了投影矩阵和视图矩阵,可以在OpenGL以外的其他代码中使用。所以整个矩阵堆栈实际上有点冗余,使用起来很麻烦。一旦一个程序达到一定的复杂程度,通过免费的可定义的制服来做就方便多了。这就是原因。不确定我是否喜欢它。@Bartvbl:嗯,除了加载其他地方用glLoadMatrix生成的矩阵外,没有任何实际应用程序实际使用矩阵堆栈。每个动画系统都会将动画数据作为随时可用的矩阵发出。对于视图计算,您已经有了投影矩阵和视图矩阵,可以在OpenGL以外的其他代码中使用。所以整个矩阵堆栈实际上有点冗余,使用起来很麻烦。一旦一个程序达到一定的复杂程度,通过免费的可定义的制服来完成就方便多了。