问题描述
这行代码如何工作?
glm::mat4 trans = glm::mat4(1.0f);
为什么我只需要传递一个浮点数,矩阵看起来如何?
解决方法
OpenGL Mathematics (GLM) API documentation基于OpenGL阴影语言(GLSL),并引用The OpenGL Shading Language specification。
5.4.2向量和矩阵构造器
[...]如果矩阵构造函数只有一个标量参数,它将用于初始化矩阵对角线上的所有分量,其余分量初始化为0.0。
可以通过单个参数1.0初始化Identity matrix。
如果将0.0作为单个参数传递,则矩阵中的所有字段均为0.0,这毫无用处。
默认构造函数将矩阵的字段保留为未初始化。
通常,矩阵( m )用于变换向量(v'= m * v)。如果矩阵的所有字段均为0.0,则结果向量( v')的所有分量也均为0.0。