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...
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.
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.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.