OSGLearn(55)ModelViewMatrix ModelViewProjectionMatrix Projection Matrix Normal Matrix
发布时间
阅读量:
阅读量
需对glsl代码中涉及的gl_ModelViewMatrix、gl_ModelViewProjectionMatrix、gl_ProjectionMatrix以及gl_NormalMatrix等内置矩阵变量进行替换操作,若原代码中未包含这些变量,则应手动添加相应的替代方案。
为何要执行此类替换?
这些预定义的矩阵和相关函数对于构建基础的OpenGL程序及理解矩阵变换原理具有一定的辅助作用。然而,当应用程序逐渐复杂化后,更优的做法是为每个可移动的模型对象独立管理其对应的矩阵实现。此外,在基于可编程管线的OpenGL着色语言(GLSL)中,无法直接调用这些内置矩阵函数,例如在OpenGL v3.0及以上版本、OpenGL ES v2.0及以上版本以及WebGL v1.0及以上版本中均不支持此类功能。因此,开发者必须自行实现矩阵逻辑,并将相关数据传递至着色器语言中。
这些以gl_开头的变量在早期版本的OpenGL中存在(但在版本330中已被移除)。若当前使用的glsl代码仍包含这些变量,可能会导致在高版本 OpenGL 中出现兼容性问题。采用osg_开头的新变量能够有效避免因不同版本之间的差异而引发的问题。无论是在低版本还是高版本 OpenGL 中均可正常使用。不过,这种方案也存在一定的局限性,即需要在程序运行过程中持续更新osg_相关的变量值。

还没有任何评论哟~
