Nek*_*ode 0 opengl matrix deprecated
移植我的游戏新的OpenGL版本(3.2以上版本)后,我注意到,glLoadMatrix()和glMultMatrix()被拆除.他们有替代品吗?我不想使用任何库,因为我有自己的矩阵堆栈.
老GL矩阵堆栈从现代的OpenGL删除,这意味着所有的矩阵相关的功能都不见了,包括glPushMatrix,glPopMatrix,glLoadMatrix等这些功能服务,允许应用程序发送的数据转换到固定功能管线的目的.
从现在开始编写自己的可编程着色器管道,完全取决于您如何处理将转换矩阵传递给着色器.通常的方法是使用统一变量或统一缓冲区.
因此,在着色器中,您可以声明应用程序所需的尽可能多的矩阵,其中:
uniform mat4 u_mvpMatrix; // there are also mat3 and mat2
uniform mat4 u_modelMatrix;
...
Run Code Online (Sandbox Code Playgroud)
并设置/更新它们glUniformMatrix*().
如果你还没有一个好的矩阵库,你肯定需要一个,因为矩阵乘法和任何其他操作现在也必须由应用程序完成.一个非常好的选择是GLM.