在three.js中有一个容器类型对象来转换一组孩子吗?

Jay*_*Dee 12 javascript webgl three.js

在three.js中是否有一个容器或节点对象,其中可以将多个网格添加为子节点,以便它们可以一起转换?

(一个不可见的容器,允许在组中对所有子对象执行转换?)

谢谢

mrd*_*oob 35

例子.

var group = new THREE.Group();

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

    var mesh = new THREE.Mesh( geometry, material );
    mesh.position.x = Math.random() * 2000 - 1000;
    mesh.position.y = Math.random() * 2000 - 1000;
    mesh.position.z = Math.random() * 2000 - 1000;

    mesh.rotation.x = Math.random() * 360 * ( Math.PI / 180 );
    mesh.rotation.y = Math.random() * 360 * ( Math.PI / 180 );

    group.add( mesh );

}

scene.add( group );
Run Code Online (Sandbox Code Playgroud)

R69 +

  • @mrdoob是'THREE.Group`还是`THREE.Object3D`?为什么我在文档中找不到"Group"? (9认同)
  • 不,它还没有. (3认同)
  • @MatthewCliatt你可以使用其中任何一个,但是THREE.Group会更快.THREE.Group是Object3D的子类,它被优化为容器.渲染器在渲染周期中不会查找材质和其他属性.[见这个帖子.](https://github.com/mrdoob/three.js/issues/8711)缺少关于THREE.Group的文档 (3认同)
  • @binki我看过Group的代码,实际上它(几乎)只是Object3D的另一个名字.没有新的方法或属性,只是一个类型'组' (2认同)