DGL https://delphigl.com/forum/ |
|
Particle System mit Geometry Shader https://delphigl.com/forum/viewtopic.php?f=20&t=11663 |
Seite 1 von 1 |
Autor: | Amnesia [ So Jul 29, 2018 15:41 ] |
Betreff des Beitrags: | Particle System mit Geometry Shader |
Hey, ich spiele in Moment mit dem geometry shader rum. Hatte vorher noch garkeine Erfahrung damit gemacht. Ich möchte ganz gerne ein Particle System erstellen welches GL_Points erzeugt, über den Geometry Shader ein Viereck für jeden Punkt zeichnet und auf dieses Viereck dann eine Textur läd. z.B. um Rauch zu erzeugen. 1. Frage: Wie kann ich die Texturkoordinaten erstellen? Problem ist ja das dies irgendwie im Geometry Shader erzeugt werden muss da erst im Geometry Shader das entgültige Objekt erstellt wird. 2. Frage: Wie veränder ich die Position der Punkte bzw. der Vierecke? In Moment mache ich es mit einem uniform vec3 array und aktualisiere das array in einer Update Funktion damit die Vierecke sich bewegen. Wenn ich jetzt aber um die 1000 Punkte erzeuge wird das ziemlich rechenintensiv. Gibt es da eine bessere Möglichkeit? Bis jetzt funktioniert eigentlich alles so wie es soll, nur eben noch ohne Texturen. Andere Tipps wie ich so etwas gut umsetzten kann nehme ich gerne an Geometry Shader würde ich aber gerne verwenden. |
Autor: | mathias [ So Jul 29, 2018 19:12 ] | ||
Betreff des Beitrags: | Re: Particle System mit Geometry Shader | ||
Meinst du so etwas wie in dieser Art ? Hier werden nur die Mittelpunkte der Rechtecke via glBufferData(... dem Shader übergeben, die Rechtecke und die Textur-Koordinaten werden im Geo-Shader berechnet. Die Rechtecke drehen sich im Kreis, dies sind man natürlich im Anhang nicht Die Sourcen sind hier: https://github.com/sechshelme/Lazarus-O ... der_Textur Ich hoffe dies hilft dir weiter.
|
Autor: | Amnesia [ So Jul 29, 2018 21:01 ] |
Betreff des Beitrags: | Re: Particle System mit Geometry Shader |
Genau so etwas hab ich gesucht. Danke!! Funktioniert jetzt auch, könnte aber natürlich schöner sein Mich würde mal interessieren wie man so etwas hin bekommt https://www.youtube.com/watch?v=2vc2hPAZWhw weiß jemand wie man das umsetzt? |
Autor: | mathias [ So Jul 29, 2018 21:33 ] | |||
Betreff des Beitrags: | Re: Particle System mit Geometry Shader | |||
Zitat: Mich würde mal interessieren wie man so etwas hin bekommt https://www.youtube.com/watch?v=2vc2hPAZWhw weiß jemand wie man das umsetzt? Ich habe da etwa, was dir weiter helfen könnte, ein uraltes DOS-Program, "fire.pas" Der ASM-Teil ist nur um in den Grafik-Modus zu schalten und die Farb-Palette zu modifizieren. Ich denke, dies könnte man auch im Shader berechnen. So wie ich das Mandelbrot hier gemacht habe: https://wiki.delphigl.com/index.php/Laz ... Mandelbrot
|
Autor: | glAwesome [ Mi Aug 01, 2018 15:08 ] |
Betreff des Beitrags: | Re: Particle System mit Geometry Shader |
Zum Bewegen der Partikel: Du kannst einen Vertex-Shader mit Transform-Feedback nutzen, um einen Vertexbuffer zu aktualisieren. Dazu brauchst du zwei Vertexbuffer, die du abwechselnd nutzt (Ping-Pong-Rendering). Coolcat hat dazu mal ein Tutorial geschrieben, das zwar schon fast zehn Jahre alt, aber vom Prinzip immer noch gültig ist. Auf die Extensions kann man heutzutage jedoch verzichten, denn OpenGL 3.2+ ist das alles Teil der Core-Funktionalität. Je nachdem, wie komplex die Bewegungsberechnung ist, kann man durchaus einige hunderttausend (oder mehr) Partikel auf einer Onbpard-Grafik animieren. Gut, wahrscheinlich willst du auch noch Ressourcen für andere Dinge frei haben. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |