2016-08-19 3 views
0

Ich erstelle ein Partikelsystem in Three.js Szene. Hier ist mein Code.Wie kann ich die Deckkraft einiger Vertices in three.js ändern?

function createParticleSystem() { 
    var sphere = new THREE.SphereGeometry(20, 50, 50); 

    var particleMaterial = new THREE.PointsMaterial({ 
       color: 0xffffff, 
       size: 0.5, 
       map: THREE.ImageUtils.loadTexture("images/particle.png"), 
       blending: THREE.AdditiveBlending, 
       transparent: true, 
       opacity:1 
      }); 

    particleSystem = new THREE.Points(sphere, particleMaterial); 

    return particleSystem; 
} 

hinzufügen particleSystem zu Szene

particleSystem = createParticleSystem(); 

scene.add(particleSystem); 

Ich frage mich, wie kann ich die Opazität von Eckpunkten ändern, die> 0 vertices.y?

for (var i; i<particleSystem.geometry.vertices.length; i++){ 
     if(particleSystem.geometry.vertices[i].y > 0){ 

     // 
     // I don't know how set the opacity of those vertices 
     // 

     } 
    } 
+0

Siehe http://stackoverflow.com/questions/12337660/ drei-js-einstellende-Opazität-von-einzelnen-Teilchen/12344288 # 12344288 – WestLangley

+0

@WestLangley Vielen Dank !!!!!!!! Es funktioniert!!!!! Jetzt möchte ich Textur auf allen Ecken zuordnen. Haben Sie einige Beispiele zum Ändern der Farbe oder Textur auf den Scheitelpunkten? Da Vertex-Shader und Fragment-Shader für mich neu sind, brauche ich einige Beispiele, um zu lernen, wie man programmiert. –

Antwort

-1

leider kann man nicht die Opazität eines Objekts ändern, was Sie tun, obwohl die Opazität eines Materials eingestellt wird. Mein Vorschlag wäre, ein identisches Material zu Ihrem particleMaterial zu schaffen, in dem Sie die gewünschte Opazität gesetzt, dann ändern Sie einfach das Material des Objekts selbst wenn vertices.y> 0

Verwandte Themen