【问题标题】:Multiple mesh with one geometry and different textures具有一种几何形状和不同纹理的多个网格
【发布时间】:2012-11-02 06:26:12
【问题描述】:

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

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);
}

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

【问题讨论】:

  • 我尝试使用独特的几何图形,但我不知道如何更新每个网格的纹理。

标签: geometry textures three.js mesh


【解决方案1】:

您的网格都可以像这样共享一个几何体:

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;

three.js r.52

【讨论】:

    猜你喜欢
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多