将面部分割为3

时间:2017-06-28 19:44:58

标签: three.js

我遇到的问题是,我使用带有材质的网格来显示几何体的线框。效果很好。然后在一个面上我添加一个新的顶点p并将旧面(a,b,c)分成3个面,覆盖旧面的整个区域 - 然后是3个新面(a,b,p)(b,c) ,p)和(c,a,p) - 删除旧面(a,b,c)然后通过geometry.elementsNeedUpdate = true; geometry.verticesNeedUpdate = true;

通知顶点和面部更新

如果我使用坚固的材料,那就像魅力一样 - 所有的面孔都以正确的颜色显示出来。但是,如果我使用我的线框材质,例如new THREE.MeshBasicMaterial({ vertexColors: THREE.FaceColors, wireframe:true});,那么只有我添加的第一个面的边显示,而另外两个不显示。如果我改变首先添加哪个面,那么对于第一个添加的面,线框显示但不再针对其他两个面。所以它不是关于脸,而是关于脸的数量......

所以我想我错过了几何的更新设置,但即使我知道(下面)没有完成任务的所有更新

geometry.elementsNeedUpdate = true;
geometry.verticesNeedUpdate = true;
geometry.morphTargetsNeedUpdate = true;
geometry.uvsNeedUpdate = true;
geometry.normalsNeedUpdate = true;
geometry.colorsNeedUpdate = true;
geometry.tangentsNeedUpdate = true;
geometry.computeFaceNormals();
geometry.computeVertexNormals();

我是如何确保所有线框显示的?

我现在还尝试拍摄修改几何体的面和顶点,并使用它们创建具有相同材质的新几何体。为此它有效。所以面和顶点都如预期的那样好。 (带有修改过的几何图形的版本的屏幕截图 - 要添加的点标记为黄色。请参见一个点似乎不在任何边缘的screenshot of the version with the modified geometry - the points to be added are marked yellow版本的屏幕截图,其中包含使用了新几何图形的版本修改几何体的顶点和面的副本 - 要添加的点标记为黄色,正如您所看到的那样,所有边缘都显示良好screenshot of the version with a new geometry using a copy of the vertices and faces of the modified geometry - the points to be added are marked yellow

干杯 Ť

0 个答案:

没有答案