c ++ GLM乘法矩阵与向量

时间:2015-04-04 07:51:35

标签: c++ matrix vector glm-math multiplying

我试图使用c ++ glm将4乘3矩阵与3维列向量相乘。

这就是它的样子:

glm::vec3 v3 = ...;
glm::mat4x3 mat = ...;
glm::vec4 result = mat * v3;

VS2012在'*'显示以下错误:

  

IntelliSense:没有运算符“*”匹配这些操作数

     

操作数类型是:glm :: mat4x3 * glm :: vec3 ...

编译期间出现了另一个错误:

  

错误C2679:二进制'*':找不到哪个运算符需要a   'glm :: vec3'类型的右手操作数(或者没有可接受的   转化率)

那么进行这种乘法的正确方法是什么?

我的回答: 好的,所以经过更多实验后我才知道哪里出了问题。基本上,关键是glm定义矩阵的方式与传统方式不同。 glm::mat4x3 mat实际上会创建一个3乘4的矩阵,包含3行和4列。如果您通过mat[i]访问它,它将返回第i列而不是第i行。

0 个答案:

没有答案