Ich weiß, wie Shadow Mapping funktioniert, aber ich bekomme nicht die Ursache für Schattenakne! Kann mir jemand auf einfache Weise die Ursache von Schattenakne sagen und wie hängt sie mit der Auflösung der Tiefenkarte zusammen?
Ich weiß, wie Shadow Mapping funktioniert, aber ich bekomme nicht die Ursache für Schattenakne! Kann mir jemand auf einfache Weise die Ursache von Schattenakne sagen und wie hängt sie mit der Auflösung der Tiefenkarte zusammen?
Antworten:
Bild 1 : Ein schlimmer Fall von Schattenakne. (Synthetisch und etwas übertrieben)
Schattenakne wird durch die diskrete Natur der Schattenkarte verursacht. Eine Schattenkarte besteht aus Proben, eine Oberfläche ist durchgehend. Somit kann es einen Punkt auf der Oberfläche geben, an dem die diskrete Oberfläche weiter als die Probe ist. Das Problem besteht auch dann weiter, wenn Sie mehrere Stichproben durchführen. Sie können jedoch intelligentere Stichproben auf eine Weise erstellen, die dies mit erheblichen Kosten nahezu eliminiert.
Bild 2: Ein Seitenausschnitt einer Schattenfunktion und ihrer diskreten Proben.
Die kanonische Möglichkeit, dies zu lösen, besteht darin, die Schattenkarte leicht zu versetzen, damit sich das Objekt nicht mehr selbst beschattet. Dieser Versatz wird als Vorspannung bezeichnet. Man kann mehr intelligente Offsets als nur einen festen Wert verwenden, aber ein fester Wert funktioniert recht gut und hat nur minimalen Overhead.
Bild 3: Schattenfunktion nach vorne vorgespannt (versetzt).
Als Ergänzung zur Antwort von joojaa: Die Verwendung einer Verzerrung zum Versetzen der Schattenfunktion löst zwar das Problem mit Schattenakne, kann jedoch ein zusätzliches Problem verursachen: Peter Panning
Wie Sie auf dem Bild links sehen, ist der Schatten von der Schattenwurfwand getrennt. Dies erweckt den Eindruck, dass die Geometrie über dem Boden schwebt (genau wie Peter Pan schweben kann, daher der Name Peter Panning).
Um dieses Problem zu lösen, müssen Sie eine "dicke" Geometrie mit einem Volumen verwenden und dann die Schattenkarte mithilfe der Rückseiten rendern. Wenn der Versatz kleiner als die Dicke der Geometrie ist, gibt es kein Peter Panning.
Beide Bilder stammen aus diesem Tutorial, in dem Sie auch mehr darüber erfahren, wie Shadow Mapping funktioniert, wie Schattenakne erzeugt und gelöst wird und was Peter Panning ist.