2

我正在尝试使用 glMatrix for WebGL 进行比例转换。

当我使用以下顺序时,比例转换效果很好:

mat4.identity(mvMatrix);
mat4.translate(mvMatrix, [1, 1, 1]);
mat4.rotate(mvMatrix, degToRad(zAngle), [0, 0, 1]);
mat4.scale(mvMatrix, [2, 2, 2]);

但是在先进行缩放变换时,对象并没有重新缩放:

mat4.identity(mvMatrix);
mat4.scale(mvMatrix, [2, 2, 2]);
mat4.translate(mvMatrix, [1, 1, 1]);
mat4.rotate(mvMatrix, degToRad(zAngle), [0, 0, 1]);

缩放必须始终作为最后的转换命令发生吗?

谢谢,埃弗顿

4

1 回答 1

4

请参阅答案以了解 OpenGL 中的“堆叠”转换。当然,矩阵乘法不是可交换的,因此您将根据顺序得到不同的结果。

于 2012-06-29T18:07:54.400 回答