我正在开发3D游戏引擎,我一直在使用带有mat4制服的着色器将转换信息和相机信息发送到管道。我在网上看过一些例子,人们一直只使用glTranslatef(),glRotatef等类似的东西。哪种方法最受欢迎?
答案 0 :(得分:1)
你最好在着色器中使用制服,因为像glTranslatef()
,glRotatef()
等函数是所谓的“固定功能管道”的一部分。现代OpenGL中不推荐使用固定功能管道,这意味着使用它的代码不适用于较新版本的OpenGL和OpenGL ES。讨论了here的含义。
答案 1 :(得分:0)
上面的答案确实是正确的,说实话,我认为使用旧系统的最大缺点是它不够灵活,你不能用着色器做很多有趣的事情。新的管道就是允许程序员访问控制通过GPU发送的数据的着色器,因此,新的“标准”要求你自己完成所有硬件。除了实际上光栅化顶点当然!