DGL https://delphigl.com/forum/ |
|
Partikelsystem mit FBO https://delphigl.com/forum/viewtopic.php?f=20&t=8844 |
Seite 1 von 1 |
Autor: | Andreas [ So Dez 06, 2009 20:14 ] |
Betreff des Beitrags: | Partikelsystem mit FBO |
Hallo, Also ich komme gleich zu meinem Problem. Ich möchte gerade ein kleine Partikelsystem im Shader schreiben und hab mir gedacht ich könnte einen Fragmentshader schreiben der anhand zwei Texturen (Position und Geschwindigkeit) in zwei Texturen die neuen Werte rendert. Beim nächsten Durchlauf tausche ich die Texturen durch zwei andere aus und so soll das fortlaufen. Für den Anfang wollte ich dann nur noch eine beliebige Anzahl von Gravitationspunkten von der Anwendung übergeben. So viel zur Theorie... Jetzt stehe ich vor dem Problem dass ich in meinem FBO genauere Datentypen verwenden will als RGBA8. Also hab ich die Textur mit GL_RGB32F_ARB erstellt. Nur wenn ich diese Textur nach der Befüllung durch den Fragment Shader rendere kommen ganz seltsame Farben auf das Fenster und es zuckt auch alles herum. Hat da jemand eine Idee wie ich das lösen kann? P.S. das Tutorial im Wiki über ein GLSL Partikelsystem hab ich mit schon angesehn, nur kenne ich TBOs nicht und versteh nicht ganz wie das Funktioniert... Danke schon im Voraus! Andreas |
Autor: | Coolcat [ So Dez 06, 2009 22:19 ] |
Betreff des Beitrags: | Re: Partikelsystem mit FBO |
Zitat: P.S. das Tutorial im Wiki über ein GLSL Partikelsystem hab ich mit schon angesehn, nur kenne ich TBOs nicht und versteh nicht ganz wie das Funktioniert... TBOs sind nicht anderes als 1D-Texturen auf die man direkt mit Integer-Koordinaten zugreifen kann. Diese sind geringfügig schneller als normale Texturen, da eben keine lineare Interpolation durchgeführt, sondern einfach nur der Inhalt der Speicherstelle zurückgegeben wird. Wenn auf deiner Grafikhardware keine TBOs verfügbar sind kannst du dafür auch einfach eine gewöhnliche 2D-Textur benutzen und die Koordinaten im Shader umrechnen. Der Unterschied ist eben das du im Shader die 1D-Koordinate im Shader in 2D umwandelst und die Hardware dies dann wieder in 1D zurück wandelt => sinnloses rumrechnen. Außerdem kann man mit Transform-Feedback in TBOs schreiben und TBOs auch nach belieben auch einfach als VBO verwenden. Es gibt übrigens zwei GLSL Partikel Artikel: GLSL_Partikel: Die alte Variante mit FBOs und Fragmentshader (genau das was du machen willst) GLSL_Partikel_2: Die neue mit Geometryshader und Transformfeedback (vermutlich das was du gelesen hast, den da werden auch TBOs verwendet) Zitat: Nur wenn ich diese Textur nach der Befüllung durch den Fragment Shader rendere kommen ganz seltsame Farben auf das Fenster und es zuckt auch alles herum. Zeig mal etwas von deinem Code, sonst kann dir niemand helfen. |
Autor: | Andreas [ Mi Jan 06, 2010 18:56 ] |
Betreff des Beitrags: | Re: Partikelsystem mit FBO |
Sorry für die späte Antwort... Ich habs jetzt geschafft es warn ein paar blöde Fehler drin und deswegen hat das ganz nicht funktioniert. Sehr interessant finde ich dass ich auf meinem laptop (nv m8600 gt) 1 Mil. Partikel schaffe mit 40 fps. Ich versuch das grade in ein .jar zu packen dass ihr es auch testen könnt, wenn ich dann einmal geschafft hab werd ich mich nocheinmal melden. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |