glm transform矩阵小坑

稍稍记录一下踩过的小坑, 一般对一个物体进行变换, 应该是先缩放, 再旋转, 最后才平移. 而利用glm库计算transform矩阵的时候, 应该注意代码顺序要与变换顺序相反, 如:

transformMatrix = glm::translate(transformMatrix, glm::vec3((p1.x+p2.x)/2, (p1.y+p2.y)/2, (p1.z+p2.z)/2));
transformMatrix = glm::rotate(transformMatrix, rotateTheta, rotateAxis);
transformMatrix = glm::scale(transformMatrix, glm::vec3(1.0, radius / 2.0, 1.0));

猜想这是由于glm内部是将新的变换矩阵右乘原来的变换矩阵导致的额……

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注