2

我有一个循环,在其中创建具有不同几何形状的多个网格,因为每个网格都有一个纹理。

for( var i = 0; i < voxels.length; i++ ){
  texture = almacen.textPlaneTexture(voxel.texto,color,voxelSize);
  material = new THREE.MeshBasicMaterial({ map: texture });                       
  object = new THREE.Mesh(new THREE.CubeGeometry(voxelSize, voxelSize, voxelSize, 1, 1, 1, new THREE.MeshBasicMaterial() ), material);
}

我有一个性能问题,我认为如果我只能创建一个几何图形,我会得到更好的结果。但我不知道如何为每个网格创建一个几何图形并使每个网格具有不同的纹理。

4

1 回答 1

0

您的网格都可以共享一个几何图形,如下所示:

var geometry = new THREE.CubeGeometry( 10, 10, 10 );

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

    texture = new THREE.Texture( ... );

    material = new THREE.MeshBasicMaterial( { map: texture } );   

    mesh = new THREE.Mesh( geometry, material );

    scene.add( mesh );

}

然后,如果要更改纹理,请执行以下操作:

var texture = new THREE.Texture( ... );
texture.needsUpdate = true;

mesh.material.map = texture;

三.js r.52

于 2012-11-13T20:31:37.013 回答