也许我只是在文档中遗漏了一些东西,但似乎GLM不可能采用向量的转置.我也看不到mat3x1或mat1x3类型. glm :: transpose也不适用于矢量.我错过了什么或者这只是GLM缺乏的功能吗?
解决方法
GLM基于GLSL,根本不需要转置矢量.如果进行向量/矩阵乘法,它将以对矩阵大小有效的方式乘以向量(除非它必须改变乘法的顺序).因此,如果您有mat4并且执行mat4 * vec4,则您的vec4被视为列向量.如果你做vec4 * mat4,它被认为是行向量.如果你做mat2x4 * vec4,你会得到一个错误,而vec4 * mat2x4工作(作为行向量).
所以一般来说,没有理由需要“转置”一个向量.系统只是做任何工作.