Java glTranslate/rotate/scale vs制服中的矩阵

Java glTranslate/rotate/scale vs制服中的矩阵,java,opengl,glsl,lwjgl,Java,Opengl,Glsl,Lwjgl,我正在开发一个3D游戏引擎,我一直在使用一个带有mat4制服的着色器将变换信息和相机信息发送到管道。我在网上看到过一些例子,人们只使用glTranslatef()、glRotatef之类的东西。哪种方法是最被接受的方法?您最好在着色器中使用制服,因为像glTranslatef(),glRotatef()等函数都是所谓的“固定函数管道”的一部分。固定函数管道在现代OpenGL中已被弃用,这意味着使用它的代码将无法与较新版本的OpenGL和OpenGL ES一起使用。这里有一个关于影响的讨论。上面的

我正在开发一个3D游戏引擎,我一直在使用一个带有mat4制服的着色器将变换信息和相机信息发送到管道。我在网上看到过一些例子,人们只使用glTranslatef()、glRotatef之类的东西。哪种方法是最被接受的方法?

您最好在着色器中使用制服,因为像
glTranslatef()
glRotatef()
等函数都是所谓的“固定函数管道”的一部分。固定函数管道在现代OpenGL中已被弃用,这意味着使用它的代码将无法与较新版本的OpenGL和OpenGL ES一起使用。这里有一个关于影响的讨论。

上面的答案确实是正确的,老实说,我认为使用旧系统的最大缺点是它不够灵活,不能用着色器做很多有趣的事情。新的管道是关于允许程序员访问控制通过GPU发送的数据的着色器,因此,新的“标准”要求您几乎自己做所有的硬工作。当然,除了实际光栅化顶点之外

着色器中的矩阵与glTranslatef()、glRotatef()不可比较,因为这些方法只是变换中使用的概念。着色器代码中的矩阵可以是任何东西。在OpenGL中,有两个固定且可编程的管道第一种情况是固定类型,使用着色器更灵活。