hab mal ein paar fragen zur Performance von glSlang..
ich hab nen Shader damit geschrieben und hab schon nurnoch ca. 20 fps... dabei ist da eigentlich nix wildes drin.
Aber was genau macht glSlang langsam???
Ich hab rausgefunden das bei meinem Shader z.B. eine if-Abfrage (welche in einer Funktion ist die 5x im Shader aufgerufen wird) knapp 10-12 FPS ausmacht.. also wenn ich sie weglasse hab ich gleich 12 FPS mehr... ausschauen tut sie so (btw.. im PixelShader):
Code:
if (Light.Position != vec4(0, 0 ,0, 0)) {
Light.Position ist vom Typ auch vec4... wenn ich diese eine Zeile auskommentiere, also so das der Code in der If-Abfrage IMMER ausgeführt wird hab ich 12fps mehr... (allerdings kann es wenn die Position 0 0 0 ist zu nem fehler kommen, deswegen die abfrage)
andere dinge die das ganze beträchtlich langsam machen hab ich nochnicht gefunden...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Karten der Shader2-Generationen unterstützen kein Early-Out, von daher wird immer der komplette Shader abgearbeitet, und einer der beiden Zweige der IF-Abfrage am Ende verworfen. Deshalb zerrt If im FS stark an der Performance und sollte vermieden werden (evtl. zwei Shader nutzen).
Generell kann man nicht viel sagen, aber je länger der Shader, desto langsamer. Du musst aber auch sagen welche Graka du verwendest, denn besonders die Geforce FX-Karten sind in Sachen Shaderperformance nicht sehr toll.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Du prüfst doch (wegen dem Code oben) ob dein Licht bei 0/0/0 ist oder nicht. Das ist aber ja eine Prüfung die du auch in deinem Programm machen kannst, also bindest du je nach Lichtposition einen Shader in dem steht was jetzt in deinem If-Zweig steht, bzw. einen zweiten Shader in dem der Inhalt des Else-Zweiges steht.
Mitglieder in diesem Forum: Majestic-12 [Bot] 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.