【发布时间】:2017-05-19 07:49:13
【问题描述】:
我通过输入文件将多个 .OBJ 文件(3D 模型)添加到我的 Three.js 场景中,并且我想让它们的大小相同。
问题在于,每个 3D 模型都有不同的尺寸,其中一些很大,而另一些非常小。
有人知道使所有 3D 模型大小相同的方法吗?
谢谢你!!!
【问题讨论】:
标签: javascript 3d three.js
我通过输入文件将多个 .OBJ 文件(3D 模型)添加到我的 Three.js 场景中,并且我想让它们的大小相同。
问题在于,每个 3D 模型都有不同的尺寸,其中一些很大,而另一些非常小。
有人知道使所有 3D 模型大小相同的方法吗?
谢谢你!!!
【问题讨论】:
标签: javascript 3d three.js
您必须修改Object3D 比例属性。您可以独立缩放 X、Y 和 Z,因此您可以将它们设置为其大小的一半,如下所示设置此比例:
yorDownloadedObject.scale = new THREE.Vector3(0.5, 0.5, 0.5);
或像这样将其大小加倍:
yorDownloadedObject.scale = new THREE.Vector3(2, 2, 2);
但如果尺寸差异太大,您可能需要根据实际尺寸放大或缩小...
要知道它们的原始大小,在缩放之前,使用名为 computeBoundingBox(或 computeBoundingSphere)的 Object3D.Geometry 属性方法获取它们的 bounding box。
然后根据 Geometry.boundingBox 属性使用Cross-multiplication 放大或缩小到您想要的大小。
另一个建议是调整模型大小,不要碰任何东西。
【讨论】: