Was ist der Unterschied zwischen Schattenvolumen und Schattenzuordnung in der Computergrafik?


Antwort 1:

Ein Schattenvolumen ist ein Netz, das durch Extrudieren des Volumens eines Objekts von der Lichtquelle weg konstruiert wird (nur die von der Lichtquelle gesehenen Silhouettekanten des Objekts werden extrudiert).

Dieses Netz wird dann mit einigen coolen Tricks in den Schablonenpuffer gerendert, um festzustellen, welche Pixel im Schatten liegen. Dann kann eine Vollbild-Schattenfarbe über die Schattenpixel gemischt werden (oder alternativ kann ein Vollbild-Licht-Shader über Pixel gerendert werden, die nicht im Schatten liegen).

Im Gegensatz dazu ist eine Schattenkarte eine Tiefenstruktur der Szene, die von der Lichtquelle in eine bestimmte Richtung gerendert wird.

Wenn es darum geht, die Szene in den Framebuffer zu rendern, transformiert der Pixel-Shader die Position der Oberfläche an diesem Pixel in den "Kameraraum" des Lichts und vergleicht den Wert (Abstand) in der Schattenkarte mit dem Abstand des Oberfläche, die an diesem Pixel zur Kameraposition im Weltraum gemalt wird. Wenn der Schattenkartenwert kleiner ist, befindet sich das Pixel auf dem Bildschirm im Schatten.

Der Vorteil von Schattenvolumen ist, dass es pixelgenau ist. Sie erhalten keine hässlichen Artefakte, wenn die Bildschirmauflösung und die Schattenkartenauflösung nicht synchron sind.

Es ist auch perfekt in der Lage, Punktlichtquellen ohne Modifikation zu zeigen, wohingegen Shadowmapping nur Scheinwerfer und Richtungslichtquellen kann oder in einem Würfel verwendet wird, um ein Punktlicht zu simulieren.

Die Nachteile sind jedoch, dass das Konstruieren des extrudierten Randnetzes Zeit benötigt und jeder Rahmen für jedes Schattenwurfobjekt für jede Lichtquelle ausgeführt werden muss. Außerdem wird die Füllrate beendet, da viele, viele Pixel über den Bildschirm mehrmals in den Schablonenpuffer gerendert werden müssen.

DOOM3 ist berühmt für die Verwendung von Schattenvolumina, aber ich denke, Schattenkarten werden heute am häufigsten verwendet.


Antwort 2:

Schattenvolumina und Schattenkarten sind zwei alternative Möglichkeiten, um Schatten in Echtzeit zu rendern.

Eine Schattenkarte ist eine Tiefenkarte, die aus Sicht der Lichtquelle gerendert wird.

Beim Rendern von Oberflächen wird eine Transformation durchgeführt, bei der der Abstand der Oberfläche zum Licht und dieser mit dem Pixelwert in der Tiefenkarte verglichen wird. Wenn die Werte nicht übereinstimmen, wird angenommen, dass sich die Oberfläche im Schatten befindet.

Ein Schattenvolumen ist ein dynamisch aufgebautes Netz von Polygonen, die aus der Silhouette eines Objekts herausragen. Diese Polygone werden in einen Schablonenpuffer gerendert, sodass dort, wo dieses Volumen die Szenengeometrie durchdringt, ein anderer Wert im Schablonenpuffer verbleibt. Dieser Wert wird verwendet, um den Schatten-Nicht-Schatten-Zustand zu bestimmen.

Weder sind besonders gute Allzwecklösungen.

Schattenkarten projizieren nur in eine Richtung. Also nicht gut für Punktquellen. Die Auflösung der Karte ist ebenfalls ein Problem, da Abtastartefakte von den einzelnen Pixeln in der Karte sichtbar sind.

Schattenvolumina können für Punktquellen verwendet werden. Mit zunehmender geometrischer Komplexität werden sie jedoch immer teurer. Das Rendern der Volumes kann teuer sein, da die gegossenen Polygone übereinander gestapelt sind, was zu vielen, vielen Überzeichnungen führt. Schattenvolumen erzeugen einen charakteristischen scharfkantigen Schatten, der präzise ist, aber die meisten Künstler bevorzugen etwas Weicheres.

Schattenkarten werden in der Regel häufiger verwendet, da es künstlerische Mittel gibt, um sie gut aussehen zu lassen. Verschiedene Filtertricks können verwendet werden, um sie naturalistischer erscheinen zu lassen.

Penumbrae, transparente Elemente bringen beide Algorithmen durcheinander.

Die neuesten Spiel-Engines entfernen sich von diesen beiden Methoden. Sie verwenden stattdessen Ray-Casting-Lösungen. Dies beinhaltet das Abtasten in eine volumetrische Darstellung der Szene. Normalerweise eine Art Okt-Baum. Diese Methoden ermöglichen eine vernünftige Annäherung an ein Halbschattenbild, das naturalistisch aussieht.