Ursache von Schattenakne

10

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?

Ankit singh kushwah
quelle

Antworten:

10

Geben Sie hier die Bildbeschreibung ein

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.

Geben Sie hier die Bildbeschreibung ein

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.

Geben Sie hier die Bildbeschreibung ein

Bild 3: Schattenfunktion nach vorne vorgespannt (versetzt).

joojaa
quelle
Und diese diskrete Natur der Tiefenkarte wird aufgrund der Gleitkommapräzision erzeugt. Richtig?
Ankit singh kushwah
1
Nein, es wird erstellt, weil Bilder diskret sind, da sie nur einen Wert für einen Bereich haben, der variiert.
Joojaa
Bilder unterscheiden sich in Kamera und Lichtraum?
Ankit singh kushwah
Ok, ist diese Zickzacklinie eine Tiefenkarte?
Ankit singh kushwah
Es repräsentiert die Funktion der Tiefenkarte, die gestrichelten Linien repräsentieren die Pixelabtastwerte der Tiefenkarte.
Joojaa
4

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

Beispielbild mit 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.

Szene mit dicker Geometrie und damit 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.

Dragonseel
quelle
Man kann auch schlauer sein und Mitteldistanzkarten rendern.
Joojaa
1
Ich hätte gedacht, dass es Peter Panning heißt, weil einige Filme Peter Pans Schatten als einen eigenen Geist darstellen und sich von Peter lösen .
Martin Ender
@ MartinBüttner Na ja. Das scheint ein vernünftiger Grund zu sein, es so zu nennen. Das Tutorial, auf das ich mich bezog, verwendet die Erklärung, die ich gegeben habe.
Dragonseel