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

Aktuelle Zeit: Mi Jul 30, 2025 21:56

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



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 2 Fragen zu Z-Correct Bump Mapping
BeitragVerfasst: Sa Apr 16, 2005 17:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich habe mal zwei Fragen zu Z-Correct Bumpmapping.
1.:
Zitat:
Zitat aus Tom Nuydens Bumpmapping - Overview:
Z-correct bump mapping has one major drawback, though. Modifying Z in a pixel shader typically disables the hardware's early depth test optimizations. Early depth testing allows the card to kill fragments based on their depths before the pixel shader is executed. This can improve performance considerably, but if the shader is going to modify the depth value, this early-out opportunity is lost.

Wird jetzt automatisch beim verändern der FragCoords der Depth-Test deaktiviert, oder wird er durch die Veränderungen praktisch sinnlos, es kommt halt dann zu Pixelfehlern? Wenn zweiteres der Fall wäre, dann könnte ich das in meinem Projekt getrost ignorieren.
2.: In gl_FragCoord.z wird ja praktisch die Entfernung des Fragments zum Betrachter angegeben, oder? Gibts es einen anderen Wert, der die Position des Fragments genau "weis", und den man auch schreiben kann?

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 18:23 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Normalerweise wird der ZBuffer komprimiert und für beispielsweise 8x8 Pixel nur die Ebenengleichung abgespeichert. Je nach Grafikkarte geht das ganze auch noch hierachisch. Wenn man den Z Wert jetzt natürlich pro Pixel schreibt, funktioniert diese Optimierung nicht mehr und das kostet richtig viel Geschwindigkeit. Eigene Occlusion Queries für jede Fläche sind da auf jeden Fall notwendig, aber die Geschwindigkeit geht trotzdem schon ziemlich stark runter.
Alpha Blending oder KIL bzw. Discard haben eine ähnliche Wirkung. Das ist nicht ganz so teuer, weil ja der alte Z Wert bekannt ist, aber dieser Bereich den ZBuffers muß dann auch dekomprimiert werden.

Man muß schon gl_FragCoord.z schreiben, aber man kann die Koordinate auch selber berechnen.

Vertex Shader:

Code:
  1. varying vec4 coord;
  2.  
  3. coord=gl_ModelViewProjectionMatrix * gl_Vertex;


Fragment Shader:

Code:
  1. vec3 FragCoord=coord.xyz /coord.w;


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]