[英]How to manage the Model, View and Projection matrices in modern OpenGL
我有几个关于现代opengl的问题:
(i)模型矩阵被描述为“包含应用于对象的每个翻译,旋转或缩放”( 1 )
(ii)因此,必须对每个VAO(包含一个场景对象,如椅子)都有意义,必须有一个顶点属性,一个4x4模型矩阵,它包含该对象的平移,旋转和缩放,以便为顶点着色器把每个顶点转换成世界空间吧?
因此,如果我有32个场景对象(每个场景对象1个模型矩阵),我会有32个模型矩阵吗?
(iii)那么我可以将视图和投影矩阵作为着色器的几个制服来处理吗?
(iv)如果一个程序有多个场景对象,例如具有不同平移,旋转和缩放的桌子和椅子,是否可以有1个模型矩阵来容纳每个场景对象的不同平移,旋转和缩放?
(i)模型矩阵被描述为“包含应用于对象的每个翻译,旋转或缩放”(1)
不。矩阵只是一个矩阵。 只有在某种情况下,矩阵才能获得额外的含义。
(ii)因此,必须对每个VAO(包含一个场景对象,如椅子)都有意义,必须有一个顶点属性,一个4x4模型矩阵,它包含该对象的平移,旋转和缩放,以便为顶点着色器把每个顶点转换成世界空间吧?
没有。
VAO不是模型。 VAO只是对记忆帅哥的引用的集合。 VAO中可以包含任何类型的数据。 如果VAO包含几何数据,则单个VAO中可以有多个独立模型。
因此,如果我有32个场景对象(每个场景对象1个模型矩阵),我会有32个模型矩阵吗?
不必要。 你也可以有16个矩阵,其中2个对象各自共享他们的模型视图转换。
(iv)如果一个程序有多个场景对象,例如具有不同平移,旋转和缩放的桌子和椅子,是否可以有1个模型矩阵来容纳每个场景对象的不同平移,旋转和缩放?
嗯,是的,但不要过分思考这个问题。 对象和转换矩阵之间没有严格的联系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.