2016-06-18 47 views
0

我是three.js的新手。我知道你可以将多个网格材料组合成一个网格。如果网格是相同的材料呢?它会增加更多细节吗?在其他方面,额外的mesh = new THREE.Mesh(geometry, material); scene.add(mesh);是否有利于做什么?用肉眼来看,我很难说。Three.js - 具有相同材质的额外网格材质有益吗?

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

    mesh = new THREE.Mesh(geometry, material); 
    mesh.position.z = - 1500; 
    scene.add(mesh); 

回答

2

看来你在术语中有点混淆了。网格是场景中的实际对象,作为材质描述网格的属性,这影响其着色。因此,创建第二个网格并将其添加到场景将导致第二个对象具有所提供的几何图形和材质(即表示)。您没有看到它的可能原因可能是因为它远离Z轴,并被相机的远剪裁平面(a.k.a Z far)剔除。

并对“有利”部分。它依赖于实现,但对于渲染性能可能会有所帮助,因为绘制调用网格以共享材质(以及因此着色器程序及其参数)可以合并在一起,而不会发生冗余状态更改,这在WebGL(和OpenGl,for那件事)。

+0

你在Three.js的上下文中是不正确的。除了作为对象的网格之外,网格术语还可以用在诸如“MeshBasicMaterial”之类的材料中。另外,您可以为一个单独的网格对象使用多种材质....并进行混合。 – dman

+0

@dman允许我提出异议。 “MeshBasicMaterial”中的“网格”一词指的是将其应用于网格,即特定地绑定到绘制网格的方式。 –

+0

是的,我说'多个网格材料合并成一个网格' – dman