GLM:如何转置矢量?

时间:2012-03-25 20:43:35

标签: c++ vector glm-math

也许我只是遗漏了文档中的内容,但似乎GLM不可能采用向量的转置。我也看不到mat3x1或mat1x3类型。 glm :: transpose也不适用于矢量。我错过了什么或者这只是GLM缺乏的功能吗?

2 个答案:

答案 0 :(得分:8)

GLM基于GLSL,根本不需要转置矢量。如果进行向量/矩阵乘法,它将以对矩阵大小有效的方式乘以向量(除非它必须改变乘法的顺序)。因此,如果您有mat4并执行mat4*vec4,则您的vec4会被视为列向量。如果您执行vec4*mat4,则会将其视为行向量。如果您执行mat2x4*vec4,则会出现错误,而vec4*mat2x4有效(作为行向量)。

所以一般来说,没有理由需要“转置”一个向量。系统只是做任何工作。

答案 1 :(得分:3)

作为人们在GLSL / GLM中寻找如何转置载体(主要用于计算外部产品 - u v T )的参考;其:

glm::core::function::matrix::outerProduct(u, v)

Nicol的GLM链接现在是404s,因为他们的API链接已经改变了格式: