使用Three.js计算静态.OBJ加载后的边界球面

时间:2012-11-28 14:48:44

标签: three.js .obj

我得到了以下代码,用于将带有.MTL的简单非动画.OBJ加载到Three.js中。它确实非常简单并且运行良好,但是当我使用computeBoundingSphere()添加该行时,它失败并出现“TypeError:object.computeBoundingSphere不是函数”:

var callbackIrali1 = function ( event ) {

    var object = event.content;
    object.computeBoundingSphere();
    scene.add( object );

};
var loaderIrali1 = new THREE.OBJMTLLoader();
loaderIrali1.addEventListener( 'load', callbackIrali1);
loaderIrali1.load( 'models/obj/irali/irali.obj', 'models/obj/irali/irali.mtl' );

问题是,我找不到回调返回的event.content可能是什么类型的对象,因此我找不到如何将computeBoundingSphere()函数应用于它。

1 个答案:

答案 0 :(得分:3)

最后我自己发现了:
- Loader返回的对象是Object3D,
- 因此,它有2个孩子:网格和材料,
- 所以你必须找到第一个孩子,然后提取它的几何,然后计算边界球。

其中给出以下行:

object.children[0].geometry.computeBoundingSphere();