Hallo,
ich will, grob, gesagt, mit OpenGL eine Art "Konfetti-Regen" rendern. Jeder Konfetti-Partikel ist ein Quad, mit einer Alpha-Textur (Undurchsichtiger Kreis, durchsichtiger Rand). Die färbe ich mit glColor() ein.
Jetzt das Problem: wenn ich ohne Depth-Test arbeite, scheinen die hinten gelegenen Partikel durch die vorderen durch. Wenn ich Depth-Test aktiviere, kommt ein anderes Problem: Das GANZE Quad ist im Z-Puffer, auch der Teil, der Transparent ist! Das bedeutet, wenn der Rand eines der vorderen Partikel über einen der hinteren Partikel ragt, sieht man einen schwarzen Rand (das was an der Textur transparent sein soll ist jetzt schwarz)!
Was kann man da tun? Muss ich wirklich alle Partikel nach /-Position sortieren, oder gibt es auch eine einfache Lösung?
Leider ist mein FTP-Server grade down, ich verscuhe baldmöglichst einen Screenshot einzustellen! Na ja, hier mal eine Skizze:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| '#####' # # ''####// # '# #/ # # #####' # # '# #' ''####'' |
# Ränder
' Unsichtbar wegen Alpha
/ Hier wird ein hinterer Partikel vom vorderen verdeckt, obwohl der alpha hat!!!