我想要做的是在Three.js中获取从ColladaLoader获得的场景的中心(因为加载的模型是场景),然后设置为Camera的目标。
答案 0 :(得分:2)
获得"中心"对于模型,您需要从其几何体计算它。幸运的是,THREE.Geometry有一些方便的方法来帮助解决这个问题。你可以计算出边界球体"对于几何体,即适合所有几何体点的最小可能球体。该边界球体的中心将是"中心"总的几何形状。
var mesh; // this should be your model's mesh
// it might be buried inside the DAE object somewhere
mesh.geometry.computeBoundingSphere(); // this isn't calculated automatically
// you need to call it
mesh.geometry.boundingSphere.center; // THREE.Vector3 which is the center of the sphere
我不确定你是否需要为结果boundingSphere.center计算世界矩阵变换,但它是一个开始。
请记住,几何体的边界球体并不能解释点的分布。几何中距离其他几个非常远的单个孤立点会抛出边界球体的中心,因为它需要移动以包含该点。尽管如此,边界球法是最快捷,最简单的方法,在大多数情况下都可以使用。
答案 1 :(得分:0)
您可以使用camera.lookAt(scene.position);