1

我正在使用 EdgesGeometry 来显示网格的外边缘:EdgesGeometry(geometry, thresholdAngle)。

这通常可以按预期工作,但是在使用threeCSG“减去”或“联合”然后在生成的网格上生成EdgesGeometry之后,即使我将“thresholdAngle”增加到“180”,我也会在共面面上出现各种杂散边缘度”,它们仍然存在。

这就是发生的事情 - 在此处输入图像描述

这是我的代码:(a & b 是盒子几何的网格)

a_ = new ThreeBSP( a );
b_ = new ThreeBSP( b );

c_ = a_.subtract(b_);
c = c_.toMesh(mat_cube);

scene.add( c );

edges = new THREE.EdgesGeometry( c.geometry, 5 )
line = new THREE.LineSegments( edges, mat_line )
scene.add( line )

有人有什么想法吗?谢谢

更新

下面是'WireframeGeometry'的样子...... 在此处输入图像描述

4

1 回答 1

1

使用EdgesGeometry.

原因是输出的伪影threeCSG

大三角形的长边与三个小三角形的边重合——重合但不共享

这意味着,长边根本不共享。三个短边也不是。

未共享的边由 EdgesGeometry 渲染。

三.js r.87

于 2017-08-31T15:26:59.490 回答