展开或使THREE.LineSegments更厚

时间:2016-12-15 00:30:08

标签: javascript three.js

我正在研究Three.JS中线条的路径,并成功地将一堆线条添加到具有正确顶点的场景中,以及我想要的材质但线条很难看到。有没有办法将线段转换为各种管,而无需从头开始并更改我使用的几何类型?

我可能没有使用正确的术语,但我基本上想要将生成的THREE.LineSegments()转换为3D中的粗线。以下是我的代码片段:

var geo = new THREE.BufferGeometry();
geo.addAttribute('position', new THREE.BufferAttribute(new Float32Array(2*numTravelVertices), 3));
var travelVertices = geo.attributes.position.array;
var vertIndex = 0;
this.set('travelVertices', travelVertices);

<add vertex indicies for points on the path>

geo.rotateX(-Math.PI / 2);
var mat = new THREE.LineBasicMaterial({color: parseInt(this.get('travelColor')), transparent: false});
var lineSegments = new THREE.LineSegments(geo, new THREE.MultiMaterial([mat]));

1 个答案:

答案 0 :(得分:1)

您可以通过设置LineBasicMaterial linewidth参数来绘制粗线:

material.linewidth = 4; // default is 1

目前这在某些Windows平台上不起作用。因此,另一种解决方案是使用第三方类THREE.MeshLine,它通过绘制一条三角形来渲染粗线。

您可以使用THREE.TubeGeometry,但这不会像MeshLine那样具有效果。

three.js r.82