Registriert: Mi Jan 08, 2003 15:49 Beiträge: 266 Wohnort: Aachen
Versuche gerade ein Particle system nach zu programmieren. Habe es auch so weit geschafft, nur jetzt habe ich noch eine Frage! In dem Bild <a href='http://hometown.aol.de/DelphiPic/Particle.JPG' target='_blank'>http://hometown.aol.de/DelphiPic/Particle.JPG</a> sehen die Partikel noch irgend wie Quadratisch aus wie bekomme ich sie in einer besseren Form, mehr rund oder so.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Jenachdem welche Partikel du haben willst, sind entweder Texturen mit Alphamaske (z.B. Schneeflocken) oder statt einfacher Quads, Kreise die nach außen transparenter werden (mittels TRIANGLE_FAN) und der entsprechenden Blendfunktion (glBlendFunc(GL_SRC_ALPHA, GL_ONE)), eine gute Methode deine Partikel realisitischer aussehen zu lassen.
In meiner ZornGL-Engine hab ich die Flammenpartikel z.B. mit einem TRIANGLE_FAN und Transparenz realisiert (klick) :
<a href='http://www.delphigl.de/ds/scr/29_07_2002_3.jpg' target='_blank'></a>
Registriert: Mi Jan 08, 2003 15:49 Beiträge: 266 Wohnort: Aachen
Ich habe es jetzt schon was besser hin bekommen, aber wenn man genau hin schaut sieht man an einigen stellen noch das schwatze Quadrat.
Jetzt sieht es so aus.
Kann man da noch was ändern bzw. verschönern?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Die Ränder sind deshalb da, weil Blending ganz einfach PerPixel und nicht PerFragment arbeitet...
...deaktiviere deshalb zum Zeichnen deines Partikelsystems mal das Schreiben von Tiefenwerten mittels glDepthMask(False), und vergiss nicht das Ganze danach wieder auf True zu setzen.
Das sollte die hässlichen Ränder verschwinden lassen.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.