0

アニメーション化されていない単純な .OBJ を .MTL とともに Three.js にロードするための次のコードを取得しました。それは確かに非常に単純でうまく機能しますが、computeBoundingSphere() で行を追加すると、「TypeError: object.computeBoundingSphere is not a function」で失敗します:

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() 関数を適用する方法が見つからないことです。

4

1 に答える 1

3

最終的に自分でそれを見つけました:
- ローダーによって返されたオブジェクトは Object3D です。
- したがって、メッシュとマテリアルの 2 つの子があります。
- 最初の子を見つけて、そのジオメトリを抽出し、境界を計算する必要があります。球体。

これにより、次の行が得られます。

object.children[0].geometry.computeBoundingSphere();
于 2012-11-28T21:56:12.447 に答える