如何在旋转或移动对象后更新顶点几何体

civ*_*ain 2 javascript three.js

我可以使用位置和旋转值来变换网格.

好的,我看到这些变化看起来是正确的,但我想要一种方法来转换几何顶点x,y,z,释放和/或重置旋转和位置值.我不知道怎么做......

我玩过:

myobj.applymatrix();
myobj.matrixAutoUpdate = false;
myobj.verticesNeedUpdate; 
Run Code Online (Sandbox Code Playgroud)

而不是设置位置和旋转,但结果是相同的:是的,更改是正确的,但内部几何没有改变.

我是否需要手动将几何变换应用于顶点?

任何帮助,将不胜感激!

Wes*_*ley 8

如果要变换几何体的顶点,请使用以下模式:

mesh.updateMatrix(); 
mesh.geometry.applyMatrix( mesh.matrix );
mesh.matrix.identity();
Run Code Online (Sandbox Code Playgroud)

然后重置position,rotation以及scale属性为初始值:

mesh.position.set( 0, 0, 0 );
mesh.rotation.set( 0, 0, 0 );
mesh.scale.set( 1, 1, 1 );
Run Code Online (Sandbox Code Playgroud)

three.js r.85