three.js EdgesHelper 在 Collada 模型上显示某些对角线

three.js EdgesHelper showing certain diagonal lines on Collada model

我在从 SketchUp 导出的简单模型上使用 EdgesHelper。它显示了一些像这样的对角线:

如何防止这些线条出现,使边缘看起来像在 SketchUp 中出现的那样?我尝试设置 thresholdAngle 但它没有帮助。

更新:

工作演示:http://jsfiddle.net/alan0xd7/6vLm5xsa/

这是我想要达到的效果:

您在没有灯光的场景中同时渲染模型和边缘助手。移除模型,您可以清楚地看到助手。所有边缘都正确渲染。

额外边的原因是因为您的模型中有两条边并发 - 一条短边和一条长边。你需要改变你的几何。这不是 three.js

的问题

如果你想显示边缘,但隐藏的边缘真正隐藏起来,你需要利用webgl特性polygonOffset。您可以使用类似于以下的模式:

var mesh = dae.children[0].children[0];
mesh.scale.set( 20, 20, 20 );

// replace the material
mesh.material = new THREE.MeshBasicMaterial( {
    color: 0x000000,
    polygonOffset: true,
    polygonOffsetFactor: 1, // positive value pushes polygon further away
    polygonOffsetUnits: 1
} );
scene.add( mesh )

var helper = new THREE.EdgesHelper( mesh, 0xffffff );
helper.material.linewidth = 2;
scene.add( helper );

已更新 fiddle:http://jsfiddle.net/6vLm5xsa/15/

three.js r.71