我是三.js的新手,我在查看一个射线拾取教程时,发现作者是这样向场景中添加立方体的:
geom = new THREE.CubeGeometry( 5, 5, 5 );
cubes = new THREE.Object3D();
scene.add( cubes );
for(var i = 0; i < 100; i++ ) {
var grayness = Math.random() * 0.5 + 0.25,
mat = new THREE.MeshBasicMaterial(),
cube = new THREE.Mesh( geom, mat );
mat.color.setRGB( grayness, grayness, grayness );
cube.position.set( range * (0.5 - Math.random()), range * (0.5 - Math.random()), range * (0.5 - Math.random()) );
cube.rotation.set( Math.random(), Math.random(), Math.random() ).multiplyScalar( 2 * Math.PI );
cube.grayness = grayness; // *** NOTE THIS
cubes.add( cube );
}
这里的情况很容易理解,但我的问题是:
如果您将多个立方体添加到Object3D
中,而不是将每个立方体单独添加到场景中,是否有任何好处?
我主要关心的是使用raycasting
的情况,有时您必须一起对所有立方体(大约200个立方体或平面)进行动画处理。