Three.js 使用 ColladaLoader 引入外部模型如何居中?

发布于 2022-09-11 17:10:37 字数 323 浏览 16 评论 0

代码如下,使用ColladaLoader引入模型后不知道如何使用Geometry,或者如何得到模型的尺寸...

var loader = new THREE.ColladaLoader();
var mesh;
loader.load("dae/LuckyStrike/luckystrike.dae", function (result) {
    mesh = result.scene.children[0].clone();
    // 定位
    // mesh.position.set(-1.4,-1,-.5)
    scene.add(mesh);
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉宸 2022-09-18 17:10:37

自问自答,找到方法啦!使用 newTHREE.Box3() 函数通过计算max - min可以获取中点。

loader.load( daeUrl, function (result) {
  mesh = result.scene
  let scaleNum = 1
  let box = new THREE.Box3().setFromObject(mesh);
  // 定位  
  mesh.position.set((-box.max.x - box.min.x) * scaleNum * 20, (-box.max.y - box.min.y) * scaleNum * 20, (-box.max.z - box.min.z) * scaleNum * 20)
  // 缩放
  mesh.scale.set(scaleNum, scaleNum, scaleNum);
  scene.add(mesh);
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文