如何在加载模型中细分特定面?

时间:2016-01-13 15:52:49

标签: javascript three.js geometry divide

我使用此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

分割面是空的。 问题是如何划分特定的面部而不会丢失分面的第一部分。

谢谢。

0 个答案:

没有答案