首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BufferGeometry:如何呈现一组人脸

BufferGeometry:如何呈现一组人脸
EN

Stack Overflow用户
提问于 2015-09-28 09:11:22
回答 1查看 2.9K关注 0票数 1

我有两个几何图形和两个网格。主要目标有时是排除第一几何学的一部分(因此我需要2组),并在这个时候显示第二几何学的一部分(总是1组)。在发布r72之前,我使用了以下代码

第一几何:

代码语言:javascript
运行
复制
bufCompaniesGeomNotActive.addDrawCall(0, geomCompaniesNotActive.faces.length * 3, 0);
bufCompaniesGeomNotActive.addDrawCall(0, 0, 0);

第二几何

代码语言:javascript
运行
复制
bufCompaniesGeomActive.addDrawCall(0, 0, 0);

在r72中,addDrawCall刚刚被重命名为addGroup。但主要问题是第一几何学中的2群。我试着让可见的部分像以前一样

代码语言:javascript
运行
复制
 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));,它可以工作,但是如何为许多组设置范围呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 13:58:57

您可以使用如下模式来用不同的材料呈现一组不同的面孔:

代码语言:javascript
运行
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32819344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档