glm::mat4 构造函数如何工作?

Posted

技术标签:

【中文标题】glm::mat4 构造函数如何工作?【英文标题】:How does glm::mat4 constructor works? 【发布时间】:2020-09-13 09:42:17 【问题描述】:

这行代码是如何工作的?

glm::mat4 trans = glm::mat4(1.0f);

为什么我必须只传递一个浮点数以及矩阵的样子?

【问题讨论】:

【参考方案1】:

OpenGL Mathematics (GLM) API documentation 基于 OpenGL 着色语言 (GLSL) 并引用 The OpenGL Shading Language specification。

5.4.2 向量和矩阵构造函数

[...] 如果矩阵构造函数只有一个标量参数,则它用于初始化矩阵对角线上的所有分量,其余分量初始化为 0.0。

Identity matrix 可以由单个参数 1.0 初始化。 如果您将 0.0 作为单个参数传递,则矩阵中的所有字段都是 0.0,这是相当无用的。 默认构造函数未初始化矩阵的字段。

通常使用矩阵 (m) 来变换向量 (v' = m * v)。如果一个矩阵的所有域都是 0.0,那么结果向量 (v') 的所有分量也是 0.0。

【讨论】:

以上是关于glm::mat4 构造函数如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 glm::mat4 手动正确编写旋转矩阵?

glm函数的问题

如何从 glm::mat4 读取值

如何从 glm::quat 和 glm::mat4 中提取偏航俯仰滚动

如何在 glRotatef 中使用 glm::mat4

绕轴旋转相机?