也许我只是在文档中遗漏了一些东西,但 GLM 似乎不可能对向量进行转置。我也看不到 mat3x1 或 mat1x3 类型。glm::transpose 也不适用于向量。我是否遗漏了什么,或者这只是 GLM 中缺少的一个功能?
问问题
13660 次
2 回答
9
GLM 基于 GLSL,根本不需要转置向量。如果您进行向量/矩阵乘法,它将以适用于矩阵大小的方式乘以向量(除非它必须更改乘法的顺序)。因此,如果您有 amat4
和 do mat4*vec4
,则您的vec4
被视为列向量。如果你这样做vec4*mat4
,它被认为是一个行向量。如果你这样做mat2x4*vec4
,你会得到一个错误,而vec4*mat2x4
工作(作为一个行向量)。
所以一般来说,没有理由需要“转置”一个向量。该系统只是做任何工作。
于 2012-03-25T20:53:18.473 回答
6
作为寻找如何在 GLSL/GLM 中转置向量(主要用于计算外积 - uv T )的人们的参考;它的:
glm::core::function::matrix::outerProduct(u, v)
Nicol 的 GLM 链接现在为 404,因为他们的 API 链接的格式已更改为:
于 2013-10-17T03:17:56.417 回答