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

代码如下,使用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);
});
阅读 3.1k
1 个回答

自问自答,找到方法啦!使用 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);
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题