Post Processing Effects in Unity: Ambient Occlusion, Anti-Aliasing und Auto-Exposure

Einige Effekte stehen dir mit den grafischen Nachbearbeitungseffekten zur Verfügung. Dieser Beitrag geht auf die Ambient Occlusion, Anti-Aliasing und Auto-Exposure vor.

Ambient Occlusion / Umgebungsokklusion

Der Nachbearbeitungseffekt von Ambient Occlusion verdunkelt Falten, Löcher, Schnittpunkte und Oberflächen, die nahe beieinander liegen.

In der realen Welt neigen solche Bereiche dazu, das Umgebungslicht auszublenden oder zu verdecken, sodass sie dunkler erscheinen. Unity nähert sich Ambient Occlusion in Echtzeit als Nachbearbeitungseffekt im Vollbildmodus an.

Der Ambient Occlusion-Effekt ist zeitaufwändig und eignet sich daher besser für die Verwendung auf Desktop- oder Konsolenhardware. Die Auswirkung auf die Verarbeitungszeit hängt von der Bildschirmauflösung und den Effekteigenschaften ab.

Der Ambient Occlusion-Effekt zwei Modi:

Skalierbare Umgebungsverdunklung
Mehrskalige volumetrische Okklusion

Skalierbare Umgebungsverdunklung

Dies ist eine Standardimplementierung von Ambient Obscurance, die auf älteren Plattformen funktioniert. Wenn Sie auf eine rechnerfähige Plattform abzielen müssen, verwende stattdessen den volumetrischen Okklusionsmodus mit mehreren Maßstäben.

Performance
Der skalierbare Umgebungsbeobachtungsmodus kann ressourcenintensiv sein, insbesondere wenn er sehr nahe an der Kamera angezeigt wird. Verwende zur Verbesserung der Leistung eine Einstellung mit niedrigem Radius, um Pixel abzutasten, die nahe am Quellpixel und im Clipbereich liegen. Dies macht das Cache effizienter. Bei Verwendung einer höheren Radiuseinstellung werden Samples erzeugt, die weiter vom Quellpixel entfernt sind, und es wird kein Caching durchgeführt, wodurch der Effekt verlangsamt wird.

Aufgrund der Perspektive der Kamera verwenden Objekte in der Nähe der vorderen Ebene größere Radien als weit entfernte Objekte. Daher ist die Berechnung des Umgebungsokklusionsdurchlaufs für ein Objekt in der Nähe der Kamera langsamer als für ein weiter entferntes Objekt, das nur wenige Pixel auf dem Bildschirm einnimmt.

Wenn du die Qualitätseinstellung verringerst, wird auch die Leistung verbessert.

Scalable Ambient Obsurance

Dieser Modus sollte nicht auf mobilen Plattformen oder Konsolen verwendet werden, da der mehrskalige volumetrische Okklusionsmodus schneller ist und bessere Grafiken für diese Plattformen bietet.

Verwendung für:

Tiefen- und Normaltexturen
Shader Modell 3

Eigenschaften

Intensität: Passe den Grad der Dunkelheit an, den die Umgebungsokklusion erzeugt.
Radius: Lege den Radius der Abtastpunkte fest, der die Ausdehnung der abgedunkelten Bereiche steuert.
Qualität (Quality): Definiere die Anzahl der Stichprobenpunkte, die sich auf Qualität und Leistung auswirken.
Farbe (Color): Stelle die Farbtonfarbe der Umgebungsokklusion ein.
Nur Umgebungslicht (Ambient Only): Aktiviere dieses Kontrollkästchen, damit der Umgebungsokklusionseffekt nur die Umgebungsbeleuchtung beeinflusst. Diese Option ist nur mit dem verzögerten Renderpfad und dem HDR-Rendering verfügbar.

Mehrskalige volumetrische Okklusion

Dieser Modus ist für Konsolen und Desktop-Plattformen optimiert. Er verfügt über bessere Grafiken und läuft auf diesen Plattformen schneller als Scalable Ambient Obscurance, erfordert jedoch Unterstützung für Compute Shader.

Voraussetzungen:

Berechne die Shader-Unterstützung
Shader-Modell 4.5

Eigenschaften

Intensität: Passe den Grad der Dunkelheit an, den die Umgebungsokklusion erzeugt.
Thickness Modifier: Ändere die Dicke der Okkluder. Dies erhöht dunkle Bereiche, kann jedoch dunkle Lichthöfe um Objekte herum einführen.
Farbe: Stelle die Farbtonfarbe der Umgebungsokklusion ein.
Nur Umgebungslicht: Aktiviere dieses Kontrollkästchen, damit der Umgebungsokklusionseffekt nur die Umgebungsbeleuchtung beeinflusst. Diese Option ist nur mit dem verzögerten Renderpfad und dem HDR-Rendering verfügbar.

Anti-aliasing / Kantenglättung

Der Anti-Aliasing-Effekt verleiht Grafiken ein glatteres Erscheinungsbild. Die Anti-Aliasing-Algorithmen sind bildbasiert. Dies ist hilfreich, wenn keine Unterstützung für herkömmliches Multisampling verfügbar ist, z. B. der verzögerte Rendering-Shading-Pfad oder HDR im Forward-Rendering-Pfad in Unity 5.5 oder früher. Das Fenster mit den Qualitätseinstellungen des Editors enthält diese Optionen.

Aliasing ist ein Effekt, bei dem Linien gezackt erscheinen oder eine „Treppe“ aufweisen (wie im linken Bild unten dargestellt). Dies kann passieren, wenn das Grafikausgabegerät nicht hoch genug aufgelöst ist, um eine gerade Linie anzuzeigen.

Durch die Verwendung von Anti-Aliasing wird die Hervorhebung dieser gezackten Linien verringert, indem sie mit mittleren Farbtönen umgeben werden. Dies verringert zwar das gezackte Erscheinungsbild der Linien, macht sie jedoch auch unschärfer.

Die Anti-Aliasing-Algorithmen sind bildbasiert. Dies ist sehr nützlich, wenn keine Unterstützung für herkömmliches Multisampling verfügbar ist, z. B. der verzögerte Rendering-Shading-Pfad oder HDR im Vorwärts-Rendering-Pfad
 in Unity 5.5 oder früher. Das Fenster mit den Qualitätseinstellungen des Editors enthält diese Optionen.

Die im Post Processing-Paket verfügbaren Algorithmen sind:

  • Schnelles ungefähres Anti-Aliasing (FXAA): Ein schneller Algorithmus für Mobilgeräte und Plattformen, die keine Bewegungsvektoren unterstützen.
  • Subpixel Morphological Anti-Aliasing (SMAA): Ein hochwertiger, aber langsamerer Algorithmus für Mobilgeräte und Plattformen, die keine Bewegungsvektoren unterstützen.
  • Temporales Anti-Aliasing (TAA): Eine fortschrittliche Technik, die Bewegungsvektoren erfordert. Ideal für Desktop- und Konsolenplattformen.

Sie werden pro Kamera in der Komponente Post-process Layer bzw. Nachbearbeitungsschicht festgelegt.

Schnelles ungefähres Anti-Aliasing (FXAA)

FXAA ist die effizienteste Technik und wird für mobile und andere Plattformen empfohlen, die keine Bewegungsvektoren unterstützen, die für das zeitliche Anti-Aliasing erforderlich sind.

Eigenschaften

Schneller Modus: Aktiviere dieses Kontrollkästchen für eine niedrigere, aber schnellere Variante von FXAA. Empfohlen für mobile Plattformen.
Alpha behalten: Aktiviere dieses Kontrollkästchen, wenn du den Alpha-Kanal von der Nachbearbeitung unberührt lassen musst. Wenn die Option deaktiviert deaktiviert ist, verwendet Unity den Alphakanal, um interne Daten zu speichern, die zur Beschleunigung und Verbesserung der visuellen Qualität verwendet werden.

Performance

Aktiviere den Fast Mode, wenn du Spiele für Mobilgeräte oder Nintendo Switch entwickelst, um die Leistung zu steigern. Es bietet auch einen kleinen Schub für die Entwicklung von PlayStation 4 und Xbox One . Der schnelle Modus bzw. Fast Mode bietet keine zusätzlichen Vorteile für Desktop-GPUs. Der reguläre Modus sollte für zusätzliche visuelle Qualität verwendet werden.

Voraussetzungen: Shader-Modell 3

Subpixel Morphological Anti-Aliasing (SMAA)

SMAA ist ein Anti-Aliasing-Effekt von höherer Qualität als FXAA, aber auch langsamer. Abhängig vom Kunststil deines Spiels kann es genauso gut funktionieren wie zeitliches Anti-Aliasing, während einige der Mängel dieser Technik vermieden werden.

Eigenschaften

Qualität: Lege die Gesamtqualität des Anti-Aliasing-Filters fest.

Performance

Durch Verringern der Qualitätseinstellung wird der Effekt schneller ausgeführt. Verwende SMAA nicht auf mobilen Plattformen.

Bekannte Probleme und Einschränkungen:

SMAA unterstützt AR / VR nicht.

Voraussetzungen:

Shader-Modell 3

Zeitliches Anti-Aliasing

TAA ist eine fortschrittliche Anti-Aliasing-Technik, bei der Frames im Laufe der Zeit in einem Verlaufspuffer akkumuliert werden, um Kanten effektiver zu glätten. Es ist wesentlich besser beim Glätten von Kanten in Bewegung, erfordert jedoch Bewegungsvektoren und ist teurer als FXAA. Es ist ideal für Desktop- und Konsolenplattformen.

Eigenschaften

Jitter-Spread: Stelle den Durchmesser (in Texel) ein, in dem Jitter-Samples verteilt werden. Kleinere Werte führen zu einer schärferen, aber stärker verzerrten Ausgabe. Größere Werte führen zu einer stabileren, aber unschärferen Ausgabe.
Stationäres Mischen (Stationary Blending): Stelle den Mischungskoeffizienten für stationäre Fragmente ein. Diese Einstellung steuert den Prozentsatz der Verlaufsprobe, die für Fragmente mit minimaler aktiver Bewegung in die endgültige Farbe gemischt wird.
Bewegungsmischung (Motion Blending): Lege den Mischungskoeffizienten für bewegte Fragmente fest. Diese Einstellung steuert den Prozentsatz der Verlaufsprobe, die für Fragmente mit signifikanter aktiver Bewegung in die endgültige Farbe eingemischt wird.
Sharpness: Stelle die die Schärfe ein, um den leichten Verlust von Details in Hochfrequenzbereichen zu verringern, der durch TAA verursacht werden kann.

Bekannte Probleme und Einschränkungen

Wird auf GLES2-Plattformen nicht unterstützt.

Voraussetzungen
Bewegungsvektoren
Tiefenstruktur
Shader-Modell 3

Auto-Exposure

Der automatische Belichtungseffekt passt die Belichtung eines Bildes dynamisch an den Helligkeitsbereich des Bildes an.

Die automatische Belichtung ahmt nach, wie sich das menschliche Auge bei unterschiedlicher Dunkelheit anpasst. Der automatische Belichtungseffekt passt die Belichtung eines Bildes dynamisch an den Helligkeitsbereich des Bildes an. Die Anpassung erfolgt schrittweise, sodass du Effekte nachahmen kannst, z. B. wenn du beim Verlassen eines dunklen Tunnels von hellem Außenlicht geblendet werden oder wenn du dich aus einer helleren Szene heraus auf eine niedrigere Lichtstärke einstellen musst.

In Unity generiert dieser Effekt für jedes Bild ein Histogramm und filtert es, um den durchschnittlichen Luminanzwert zu ermitteln. Dieses Histogramm und der automatische Belichtungseffekt erfordern die Unterstützung des Compute-Shaders.

Eigenschaften

Belichtungseinstellungen:

Filterung: Stelle den unteren und oberen Prozentsatz des Histogramms ein, die eine stabile durchschnittliche Luminanz finden. Werte außerhalb dieses Bereichs werden verworfen und tragen nicht zur durchschnittlichen Luminanz bei.
Minimum: Stelle die minimale durchschnittliche Luminanz ein, die für die automatische Belichtung in EV berücksichtigt werden soll.
Maximum: Stelle die maximale durchschnittliche Luminanz ein, die für die automatische Belichtung in EV berücksichtigt werden soll.
Exposure Compensation / Belichtungskorrektur: Stelle den mittleren Grauwert ein, um die globale Belichtung der Szene zu kompensieren.

Anpassungseinstellungen:

Typ: Wähle den Anpassungstyp aus. Progressive animiert die automatische Belichtung. Behoben animiert die automatische Belichtung nicht.
Speed Up: Stelle die Anpassungsgeschwindigkeit von einer dunklen auf eine helle Umgebung ein.
Speed Down: Stelle die Anpassungsgeschwindigkeit von einer hellen in eine dunkle Umgebung ein.

Details:
Verwende den Filterbereich bzw. Filtering, um den dunkelsten und hellsten Teil des Bildes auszuschließen, sodass sehr dunkle und sehr helle Pixel nicht zur durchschnittlichen Luminanz beitragen. Werte sind in Prozent angegeben.

Minimal- / Maximalwerte klemme die berechnete durchschnittliche Luminanz in einen bestimmten Bereich.

Du kannst den Type auf Fixed einstellen und er verhält sich wie eine automatische Belichtungseinstellung.

Verwende den Light Meter-Monitor, um diesen Effekt einzurichten.

Voraussetzungen:

Shader berechnen
Shader Modell 5

 

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.