1) Ja man kann den Depthbuffer einfach wieder als Textur binden. Zurückgegeben wird dann ein float 0...1 Der exponent des floats muss ja nicht mitgespeichert werden. Bei älteren ATI Karten gibt es eine Besonderheit: Die Piuxelshader reichen nur mit 24bit floats, und demnach können die Pixelshader nur 16bit depthtextures lesen
2) Solang der Postfilter jeden Wert nur einmal schreibt und keine besonders weit entfernten Texel liest, ist die Wahrscheinlichkeit für hässliche Artefakte gering, jedoch ist der zustand der zu lesenden Texel nicht definiert, Besser PingPong zwischen zwei buffern render, oder vom Lightbuffer aus in den Backbufer rendern...
3)Die fullscreen Quads sind nicht so wirklich Ideal, wenn es Punkt oder Spotlichtersind. Besser is es ein Boundingvolumen mit Zfail zu zeichnen, weil sich dabei eine menge Fragmente schon früh aussortieren lassen. SUpershader für mehere Lichquellen können sinvoll sein, wenn sie den gleichen Sichtbarkeitsbereich haben. Einiges wie z.B. die berechnung der Modelvievposition oder fetchen der 5 G-Buffer texturen muss dann nur ein mal durchgeführt werden. In dem Fall profitiert der Shader davon, das keine teueren Pixel mehr später übergemalt werden, oder der Vertzexshader sinnlos verdeckte Objekte für Multipass berechnet.
Zum glück kann man G und Light pass getrennt optimieren.....
Teilweise scheint es so als wenn das deferred rendering auf der GF8 noch wesendlich besser skaliert, da bedonders die Lichtschader viele skalare Instructions haben...
Bei so alten Treiber ist es kein wunder das es sage und schreibe 10 FPS schafft.
1) Ja man kann den Depthbuffer einfach wieder als Textur binden. Zurückgegeben wird dann ein float 0...1 Der exponent des floats muss ja nicht mitgespeichert werden. Bei älteren ATI Karten gibt es eine Besonderheit: Die Piuxelshader reichen nur mit 24bit floats, und demnach können die Pixelshader nur 16bit depthtextures lesen
Und wie greife ich im Shader drauf zu? texture2D? weil das liefert ja en vec4 zurück.. und wenn ich das nem float zuweise mäckert er ja wegen typenumwandlung rum..
oc2k1 hat geschrieben:
Besser is es ein Boundingvolumen mit Zfail zu zeichnen
Wie meinst du das? Wozu ein Volumen? Und wieso zFail?
Ich hab doch meine gBuffer als 2D Bild wo ich im 2D raum das licht reinrechne... wie kann ich da was mit zFail machen? *unsicher schau*
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.