2

我有一个盒子网格,我用 Three.CSG 减去另一个盒子来创建一个带窗户的墙。这样做之后,网格中的切口旁边会出现小孔。它们始终不可见,但在四处走动时会出现。

如何关闭这些孔?

在此处输入图像描述

在此处输入图像描述

这是我如何创建网格的代码的一部分:

var wallBsp = new ThreeBSP( myWallMesh );
var subMesh = new THREE.Mesh( mygeo );
var subBsp  = new ThreeBSP( subMesh );
var subtract_bsp = wall_bsp.subtract( subBsp );

var result = subtract_bsp.toMesh(); 
result.material.shading = THREE.FlatShading;
result.geometry.computeVertexNormals();

更新

我创建了一个 jsfiddle,但很难重现该错误,我无法让它在那里可见:http: //jsfiddle.net/L0rdzbej/23/

但是,您可以在此处查看完整的应用程序。

就像@gaitat 建议的那样,geometry.mergeVertices()它看起来对我没有任何改变。Chandler Prall 暗示了 where 的来源precisionPoints,它是 mergeVertices 函数中的一个变量,可以解决这个问题。根据场景的规模,它的值应该更低或为负,但到目前为止我还没有成功。

4

0 回答 0