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