Как исправить крошечные отверстия в сетке после операции вычитания с Three.CSG
У меня есть Box Mesh, где я вычитаю еще один Box с Three.CSG, чтобы создать стену с окном. После этого в меше вдоль разреза появляются крошечные отверстия. Они не видны во все времена, но появляются при движении.
Как закрыть эти отверстия?
Это часть кода, как я создаю Mesh:
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()
не похоже, что это что-то меняет для меня. Чендлер Пралл намекнул на источник, где precisionPoints
, которая является переменной внутри функции mergeVertices, может решить эту проблему. В зависимости от масштаба сцены его значение должно быть меньше или меньше, но я пока не добился успеха.