Как исправить крошечные отверстия в сетке после операции вычитания с 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, может решить эту проблему. В зависимости от масштаба сцены его значение должно быть меньше или меньше, но я пока не добился успеха.

0 ответов

Другие вопросы по тегам