2016-10-11 1 views
0

Ich frage mich, ob es eine Möglichkeit gibt, Objekte zu mischen, die sich in verschiedenen Zeichenaufrufen befinden.OpenGL ES 2.0 Blending nur für verschiedene Objekte

Ich habe ein Partikelsystem, das viele Punkte nahe beieinander zieht und ich möchte ihre Farbwerte nicht hinzufügen. Allerdings möchte ich diese Partikel mit anderen Partikeln aus einem anderen Partikelsystem zeichnen. Ich weiß, dass ich dies mit einem Frame-Puffer-Objekt erreichen könnte, aber es scheint nicht effizient.

Antwort

0

Es ist nicht direkt über Blending möglich; der einzige Zustand, den GL zu irgendeinem Zeitpunkt hat, ist das aktuelle Fragment und der Inhalt des Framebuffers.

Sie können sich eine Schablone vorstellen (löschen Sie die Schablone zu Beginn der Zeichnung, stellen Sie die Schablone mit jedem Dreieck im Partikelsystem auf 1 und scheitern, wenn der Schablonentest bereits 1 ist). Die meisten Partikel benötigen jedoch ein gewisses Maß an Alphatransparenz, um jedes Partikel an den Rändern auszublenden, also ist dies wahrscheinlich nicht das, was Sie tatsächlich wollen ...

Eigentlich, da die "Fade" -Region eines Partikels sich überlappen muss der "helle" Teil eines Teilchens dahinter, ich bin nicht ganz sicher, dass Sie diese Arbeit machen können, ohne alle Teilchen im Teilchensystem miteinander zu vermischen.

+0

In meinem Fall verwende ich keinen Ausblendeffekt für die Partikel (sie werden nur kleiner), so scheint die Stencil-Maske wie es funktionieren würde. Vielen Dank!! – satm12