Cab*_*ibo 0 html5 webgl three.js raycasting
所以我正在使用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 );
}
Run Code Online (Sandbox Code Playgroud)
我打电话的时候
var intersects = raycaster.intersectObjects( scene.children );
Run Code Online (Sandbox Code Playgroud)
它将与这些对象相交.但是,如果我首先创建一个'subScene',如下所示:
var subScene = new THREE.Object3D();
scene.add(subScene);
Run Code Online (Sandbox Code Playgroud)
然后将所有这些对象添加到subScene而不是场景,将不再发生交集.
是否可以在场景和子场景中交叉所有对象(在最终项目中我希望有多层嵌套的subScenes)或者如果我使用光线投射,我应该尝试将所有对象保留在同一场景中吗?
提前感谢您的时间,
艾萨克
你只需要设置recursive标志:
var intersects = raycaster.intersectObjects( scene.children, true );
Run Code Online (Sandbox Code Playgroud)
three.js r.58