我有两个几何图形和两个网格。主要目标有时是排除第一几何学的一部分(因此我需要2组),并在这个时候显示第二几何学的一部分(总是1组)。在发布r72之前,我使用了以下代码
第一几何:
bufCompaniesGeomNotActive.addDrawCall(0, geomCompaniesNotActive.faces.length * 3, 0);
bufCompaniesGeomNotActive.addDrawCall(0, 0, 0);
第二几何
bufCompaniesGeomActive.addDrawCall(0, 0, 0);
在r72中,addDrawCall刚刚被重命名为addGroup。但主要问题是第一几何学中的2群。我试着让可见的部分像以前一样
floor.companiesGeomNotActive.groups[0].start = 0;
floor.companiesGeomNotActive.groups[0].count = obj.startFaceIndexNotActive * 3;
floor.companiesGeomNotActive.groups[1].start = obj.endFaceIndexNotActive * 3;
floor.companiesGeomNotActive.groups[1].count = lengthNotActive - obj.endFaceIndexNotActive * 3;
但没有成功。我已经找到了方法companiesGeomActive.setDrawRange(obj.startFaceIndexActive * 3, 3 * (obj.endFaceIndexActive - obj.startFaceIndexActive));
,它可以工作,但是如何为许多组设置范围呢?
发布于 2015-09-28 13:58:57
您可以使用如下模式来用不同的材料呈现一组不同的面孔:
geometry.clearGroups();
geometry.addGroup( start1, count1, 0 ); // materialIndex 0
geometry.addGroup( start2, count2, 1 ); // materialIndex 1
// materials array
var materials = [
new THREE.MeshBasicMaterial( { color: 0xff0000 } ),
new THREE.MeshLambertMaterial( { color: 0x00ff00 } )
];
var mesh = new THREE.Mesh( geometry, materials );
three.js r.142
https://stackoverflow.com/questions/32819344
复制相似问题