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

在Collada模型上显示某些对角线的three.js EdgeHelper,three.js,Three.js,我正在使用从SketchUp导出的简单模型。它显示了一些对角线,如下所示: 如何防止这些线出现,使边看起来与SketchUp中显示的一样?我尝试设置了阈值角度,但没有效果 更新: 工作演示: 这就是我试图实现的外观: 在没有灯光的场景中同时渲染模型和边辅助对象。移除模型后,可以清楚地看到辅助对象。所有边都正确渲染 额外边的原因是模型中有两条边同时存在——短边和长边。您需要更改几何体。这不是three.js的问题 如果要显示边,但要真正隐藏隐藏边,则需要使用webgl功能polygonOffse

我正在使用从SketchUp导出的简单模型。它显示了一些对角线,如下所示:

如何防止这些线出现,使边看起来与SketchUp中显示的一样?我尝试设置了
阈值角度
,但没有效果

更新:

工作演示:

这就是我试图实现的外观:


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

额外边的原因是模型中有两条边同时存在——短边和长边。您需要更改几何体。这不是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 );
更新小提琴:


three.js r.71

您的模型是单一网格吗?你有内表面吗?能否提供演示问题的演示的实时链接?(1)在没有灯光的场景中渲染模型和“边”辅助对象。移除模型后,可以清楚地看到辅助对象。所有边都正确渲染。(2) 额外边的原因是模型中有两条边同时存在——短边和长边。您需要更改几何体。并且不需要动画循环。谢谢你的回复。如果您看到第一个屏幕截图,我如何使我的模型像SketchUp中显示的那样进行渲染,但使用白线和黑色表面?我对three.js不是很熟悉,也许我不打算使用EdgeHelper来完成这个任务?非常感谢您的帮助!非常感谢您的回答。我可以通过在Blender中手动编辑模型的边来删除额外的边(在SketchUp中似乎不可能这样做)。