【发布时间】:2019-06-23 17:54:10
【问题描述】:
我正在尝试使用 glm 转换带有矩阵变换的顶点。
但看起来,我做错了什么。
我试图改变 vm 和 mv 的一面,但结果相同。 Res 与to 相乘后的值相同;
void transform(V3 &to, PTransformation t)
{
float v1 = to.x();
float v2 = to.y();
float v3 = to.z();
glm::vec4 v = glm::vec4(v1, v2, v3, 1.0f);
glm::vec3 valuesToTranslate(t.translateX, t.translateY, t.translateZ);
glm::mat4 m = glm::translate(valuesToTranslate);
glm::vec4 res = v * m;
to.e[0] = res.x;
to.e[1] = res.y;
to.e[2] = res.z;
}
【问题讨论】:
-
为什么不把
t的三个坐标加到to的坐标上? -
通常用OpenGL,乘法顺序是m * v,而不是v * m
-
@Rabbid76 我还想添加比例乘法和旋转乘法。这只是一个例子