aes*_*eis 7 c++ vector glm-math
也许我只是遗漏了文档中的内容,但似乎GLM不可能采用向量的转置.我也看不到mat3x1或mat1x3类型.glm :: transpose也不适用于矢量.我错过了什么或者这只是GLM缺乏的功能吗?
GLM基于GLSL,根本不需要转置矢量.如果进行向量/矩阵乘法,它将以对矩阵大小有效的方式乘以向量(除非它必须改变乘法的顺序).因此,如果你有a mat4和do mat4*vec4,你的vec4被认为是列向量.如果这样做vec4*mat4,则将其视为行向量.如果你这样做mat2x4*vec4,你会得到一个错误,同时vec4*mat2x4工作(作为行向量).
所以一般来说,没有理由需要"转置"一个向量.系统只是做任何工作.
作为寻找如何在 GLSL/GLM 中转置向量(主要用于计算外积 - uv T)的人的参考;它的:
glm::core::function::matrix::outerProduct(u, v)
Run Code Online (Sandbox Code Playgroud)
Nicol 的 GLM 链接现在是 404,因为他们的 API 链接格式从:
旧链接:http : //glm.g-truc.net/api-0.9.4/a00133.html#ga5d896e8651512fc098a677dbe403eeac
新链接:http : //glm.g-truc.net/0.9.4/api/a00133.html#ga5d896e8651512fc098a677dbe403eeac