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. :wink:

Dateianhänge:
Bildschirmfoto vom 2018-07-29 20-07-16.png
Bildschirmfoto vom 2018-07-29 20-07-16.png [ 18.38 KiB | 13962-mal betrachtet ]

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 :D
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

Dateianhänge:
Bildschirmfoto vom 2018-07-29 22-31-23.png
Bildschirmfoto vom 2018-07-29 22-31-23.png [ 20.01 KiB | 13959-mal betrachtet ]
fire.tar.gz [1.26 KiB]
434-mal heruntergeladen

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/