c++ - glm::mat4 构造函数如何工作?
问题描述
这行代码是如何工作的?
glm::mat4 trans = glm::mat4(1.0f);
为什么我必须只传递一个浮点数,矩阵的外观如何?
解决方案
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。
推荐阅读
- c++ - 如何清除/清空已经打开 C++ 的文件
- javascript - 为什么一个 Firebase 函数被 CORS 阻止了?
- python - 具有一个索引的对象不可迭代
- python - 请求 Python 代码生成多元正态以外的多元分布
- c++ - 从具有按值捕获的 lambda 移动构造 std::function 时调用了两次移动构造函数
- python - 将 K 折验证应用于文本分类
- excel - 我无法多次添加到工作簿类以实例化
- docker - 当我拉一些图像时,我得到“下载失败:未知 blob”
- html - 将非响应输入字段转换为响应字段的建议
- pentaho - pentaho 数据集成输出 excel 文件未检索到所有查询结果