我们使用模型视图投影矩阵的目的是什么?
为什么着色器需要模型视图投影矩阵?
模型、视图和投影矩阵是三个独立的矩阵。模型从对象的局部坐标空间映射到世界空间,从世界空间到相机空间的视图,从相机到屏幕的投影。
如果您组合了所有三个,则可以使用一个结果从对象空间一直映射到屏幕空间,从而使您能够计算出需要从传入顶点位置传递到可编程管道的下一阶段的内容。
在旧的固定功能管道中,您可以将模型和视图一起应用,然后使用从它们派生的另一个结果来计算照明(进行一些修复,以便例如法线仍然是单位长度,即使您对对象应用了一些缩放),然后应用投影。您可以在 OpenGL 中看到这一点,它从不分离模型和视图矩阵 - 将它们保留为单个模型视图矩阵堆栈。因此,您有时也会在着色器中看到这一点。
因此:着色器通常使用组合的模型视图投影矩阵从为每个模型加载的顶点映射到屏幕。这不是必需的,有很多方法可以实现同样的事情,这只是常见的,因为它允许所有可能的线性变换。正因为如此,它的较少组成版本也是旧固定管道世界中的标准。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)