我使用此javascript代码细分特定的面孔。
var face = mesh.geometry.faces[100];
var vector = new THREE.Vector3( (mesh.geometry.vertices[face.b].x + mesh.geometry.vertices[face.c].x) / 2, (mesh.geometry.vertices[face.b].y + mesh.geometry.vertices[face.c].y) / 2, (mesh.geometry.vertices[face.b].z + mesh.geometry.vertices[face.c].z) / 2);
mesh.geometry.vertices.push(vector);
var index = mesh.geometry.vertices.length - 1; // This method of getting the index is not thread safe!
var temp = mesh.geometry.faces[100].b;
aa = new THREE.Face3(mesh.geometry.faces[100].a, index ,mesh.geometry.faces[100].c, mesh.geometry.faces[100].normal, mesh.geometry.faces[100].color, mesh.geometry.faces[100].materialIndex);
mesh.geometry.faces[100] = aa;
mesh.geometry.faces.push( mesh.geometry.faces[100] );
var ff = new THREE.Face3(temp, index, mesh.geometry.faces[100].c, mesh.geometry.faces[100].normal, mesh.geometry.faces[100].color, mesh.geometry.faces[100].materialIndex );
ff.color.setRGB( 255,255,255);
mesh.geometry.faces.push( ff );
mesh.geometry.verticesNeedUpdate = true;
mesh.geometry.facesNeedUpdate = true;
var wireframe = new THREE.WireframeHelper(mesh, 0x000000);
scene.add( wireframe );
the result is presentedin this figure
分割面是空的。 问题是如何划分特定的面部而不会丢失分面的第一部分。
谢谢。