Three.js:applyMatrix之后的混乱网格旋转

时间:2013-06-20 19:04:51

标签: matrix three.js transformation mesh

将矩阵应用于网格后,我打印其旋转参数。 重置网格旋转后,缩放和定位并重新应用相同的矩阵 - 旋转参数不等于之前的参数。

var ctm1 = new THREE.Matrix4();
var ctm2 = new THREE.Matrix4();
ctm1.set(...............);
ctm2.set(...............);

function reset(mesh)
{
  mesh.position.set(0,0,0);
  mesh.scale.set(5,5,5);
  mesh.rotation.set(0,0,0);
}

reset(myMesh);
myMesh.applyMatrix(ctm1);
console.log(myMesh.rotation.x);

reset(myMesh);
myMesh.applyMatrix(ctm2);

reset(myMesh);
myMesh.applyMatrix(ctm1);
console.log(myMesh.rotation.x); //Isn't equal to previous output !!!

Three.js r.58

1 个答案:

答案 0 :(得分:5)

three.js渲染器处理更新对象matrix,以便矩阵与对象positionrotationscale.

一致

由于您未进行render()来电,因此您需要添加mesh.updateMatrix()作为reset()功能的最后一行。

three.js r.58