0

そのため、three.js の例で webgl_interactive_cubes.html を使用していますが、比較的単純な質問があります。光線とオブジェクトの子との交差をテストすることは可能ですか。

たとえば、次のようなことをするとします。

for ( var i = 0; i < 2000; i ++ ) {

var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } ) );
scene.add( object );

}

電話すると

var intersects = raycaster.intersectObjects( scene.children );

これらのオブジェクトと交差します。ただし、最初に「subScene」を作成すると、次のようになります。

var subScene = new THREE.Object3D();
scene.add(subScene);

そして、これらすべてのオブジェクトをシーンではなく subScene に追加すると、交差は発生しなくなります。

シーンとサブシーン内のすべてのオブジェクトを交差させることはまったく可能ですか (最終的なプロジェクトでは、ネストされたサブシーンの多くのレイヤーが必要です) または、レイキャスティングを使用している場合、すべてのオブジェクトを同じシーンに保持する必要がありますか?

お時間をいただきありがとうございます。

アイザック

4

1 に答える 1

7

recursiveフラグを設定するだけです:

var intersects = raycaster.intersectObjects( scene.children, true );

three.js r.58

于 2013-07-12T06:02:28.447 に答える