2016-12-15 3 views
0

Ich arbeite daran, Pfade von Linien in Three.JS zu visualisieren und habe erfolgreich eine Reihe von Linien zur Szene mit den richtigen Scheitelpunkten hinzugefügt, und Material, das ich will, aber die Linien sind hart sehen. Gibt es eine Möglichkeit, ein Liniensegment in eine Röhre umzuwandeln, ohne von vorne anfangen zu müssen und die Art der Geometrie zu ändern, die ich verwende?Erweitern oder machen Sie eine DREI.LineSegments dicker

Ich verwende nicht die richtige Terminologie, aber ich möchte im Grunde eine generierte THREE.LineSegments() in eine dickere Linie in 3D verwandeln. Im Folgenden ist ein Ausschnitt aus meinem Code:

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])); 
+0

Mögliche Duplikat [Umgehung mangels Linienbreite unter Windows, wenn Three.js mit] (http://stackoverflow.com/questions/21067461/workaround-for-lack- von-line-width-on-windows-wenn-mit-drei-js) –

Antwort

1

können Sie dicke Linien zeichnen, indem die LineBasicMateriallinewidth Parametereinstellung:

material.linewidth = 4; // default is 1 

Das zur Zeit nicht auf einigen Windows-Plattformen funktioniert. Eine alternative Lösung ist die Verwendung der dritten Parteiklasse THREE.MeshLine, die dicke Linien durch Zeichnen eines Streifens von Dreiecken darstellt.

Sie können THREE.TubeGeometry verwenden, aber das wäre nicht so performant wie MeshLine.

three.js r.82

+0

Ich habe gewählt, um die Frage als Duplikat zu schließen, aber diese Antwort ist ziemlich nützlich. Ihre Arbeit in Bezug auf 'Linienstärken'-Unterstützung," außer auf einigen Windows-Plattformen ", hat mich überrascht. Gibt es noch Windows-Browser, die nicht auf Angle/DirectX laufen (d. H. Unterstützen also die Linienbreite)? Ich beschreibe WebGL Linienbreite normalerweise als "im Allgemeinen nicht unterstützt". –

Verwandte Themen