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

时间:2015-07-05 00:57:56

标签: three.js

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

image

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

更新

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

这是我想要实现的目标:

image

1 个答案:

答案 0 :(得分:4)

您在没有灯光的场景中渲染模型和边缘辅助对象。删除模型,您可以清楚地看到帮助程序。所有边缘都可以正确渲染。

额外边缘的原因是因为模型中有两条边并发 - 短边和长边。您需要更改几何体。这不是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 );

更新小提琴:http://jsfiddle.net/6vLm5xsa/15/

fiddle rendering

three.js r.71