2014-10-10 16 views
6

Ich benutze THREE.WebGLRenderer und ich möchte ein paar gleichgroße weiße Punkte an bestimmten Positionen im 3D-Raum zeichnen.threw.js Wie man einen einfachen weißen Punkt/Punkt/Pixel rendert

Soll ich Sprites verwenden, die 2D-Bildschirmkoordinaten berechnen und SpriteMaterial.useScreenCoordinate verwenden?

Soll ich einfach die Größe der Sprites über die Entfernung von ihnen zur Kamera neu berechnen?

Kann ich SpriteMaterial.scaleByViewport oder SpriteMaterial.sizeAtenution verwenden? Gibt es dafür Unterlagen?

Gibt es etwas wie GL_POINTS? Es wäre schön, nur einen Eckpunkt zu definieren und ein farbiges Pixel an dieser Position zu erhalten. Soll ich mit PointCloud experimentieren?

Danke für Hinweise!

Bearbeiten: Alle Punkte sollten die gleiche Größe auf dem Bildschirm haben.

Antwort

7

Mit .sizeAttenuation und einen einzelnen Vertex Pointcloud funktioniert, aber es fühlt sich ein bisschen ... overengineered:

var dotGeometry = new THREE.Geometry(); 
dotGeometry.vertices.push(new THREE.Vector3(0, 0, 0)); 
var dotMaterial = new THREE.PointsMaterial({ size: 1, sizeAttenuation: false }); 
var dot = new THREE.Points(dotGeometry, dotMaterial); 
scene.add(dot); 
Verwandte Themen