我想编辑对象的位置、旋转和缩放向量,然后将它们“应用”到几何体,这会将这些向量归零,但保留变换。
例如,假设我导入一个边长为 1 的立方体。立方体的最小和最大顶点位于
(0, 0, 0)
和 (1, 1, 1)
。我将对象的比例设置为 (2, 2, 2)
,然后将变换应用于几何体。
应用后,比例将重置为
(1, 1, 1)
,立方体的最小和最大顶点分别为 (0, 0, 0)
和 (2, 2, 2)
。
有一些内置的方法可以做到这一点吗?
您可以直接将对象的变换应用于对象的几何形状,然后重置位置、旋转和缩放,如下所示:
object.updateMatrix();
object.geometry.applyMatrix4( object.matrix );
object.position.set( 0, 0, 0 );
object.rotation.set( 0, 0, 0 );
object.scale.set( 1, 1, 1 );
object.updateMatrix();
三.js r.150
另一种解决方案是创建一个包装对象,其中子对象将具有默认的旋转、位置和缩放:
const ChildObject = load(/*...*/);
ChildObject.rotation.set(90, 0, 0); // default rotation goes here
const MainObject = new THREE.Object3D();
MainObject.add(ChildObject);