Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 07:46

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 26, 2007 14:44 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 26, 2007 14:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
oc2k1 hat geschrieben:
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*

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Shader


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]