首页 > 解决方案 > glm::mat4 构造函数如何工作?

问题描述

这行代码是如何工作的?

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

为什么我必须只传递一个浮点数,矩阵的外观如何?

标签: c++openglglm-math

解决方案


OpenGL 数学 (GLM) API 文档基于OpenGL 着色语言 (GLSL) 并参考OpenGL 着色语言规范

5.4.2 向量和矩阵构造函数

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

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

通常使用矩阵 ( m ) 来转换向量 (v' = m * v)。如果矩阵的所有字段都是 0.0,则结果向量 ( v' ) 的所有分量也都是 0.0。


推荐阅读