Nachbearbeitungseffekte in Unity

Die Post Processing Effekte sind eine Sammlung von Effekten, die in Unity eingesetzt werden können. Du installierst sie über den Package Manager.

Post ProcessingPost Processing

Zusätzlich enthält es Bildfilter für die Verbesserung der Spielegrafik.

Bei der Nachbearbeitung werden Vollbildfilter und -effekte auf den Bildpuffer einer Kamera angewendet, bevor er auf dem Bildschirm angezeigt wird. Es kann die Grafik deines Spiels mit wenig Einrichtungszeit drastisch verbessern.

Du kannst Nachbearbeitungseffekte verwenden, um physische Kamera- und Filmeigenschaften zu simulieren. Dazu gehören Schimmern, Schärfentiefe, chromatische Aberration oder Farbkorrektur.

Relevant ist außerdem der Volumengrafik, der hier als “Volume” öfter Verwendung findet. Dabei werden Objekte im Voxelgitter, also einem dreidimensionalem Gitter, modelliert. Transparente Objekte können ohne scharfe Abgrenzung modelliert werden und mit hoher Genauigkeit und Wirklichkeitsgetreu bildlich dargestellt. Das Rendern der Volumengrafik erfolgt durch Klassifikation, Interpolation, Shading und Compositing. Bei der Klassfiikation bekommen die Grafiken Materialeigenschaften zugewiesen. Zu den Informationen die geliefert werden, gehören beispielsweise die Farbtöne des Materials. Das Shading bezieht sich auf die Betrachtung des Voxels und aus welcher Richtung das Licht reflektiert wird und welche Farbe es dann hat. Bei der Interpolation werden Materialeigenschaften auf den Punkten zwischen den Voxeln aus der Umgebung angehört. Das Compositing ermöglicht die Verrechnung gelieferter Lichtbeiträge, was zum endgültigen Bildpunkt führt. Beim durchqueren der Voxel ädern sich Intensität und Farbe jeder Teilchen. Am Ende fällt das Licht auf die Bildebene und färbt ein Pixel ein.

Nachbearbeitungseffekte verwenden

Um die Nachbearbeitung in deinem Projekt zu verwenden, kannst du das Post Processing-Paket von Unity importieren. Du kannst auch deine eigenen Nachbearbeitungseffekte schreiben.

Der Nachbearbeitungsstapel ist ein Effekt, der einen vollständigen Satz von Effekten in einer einzigen Nachbearbeitungspipeline kombiniert. Dies hat einige Vorteile:

  • Effekte werden immer in der richtigen Reihenfolge konfiguriert
  • Es ermöglicht die Kombination vieler Effekte in einem Durchgang
  • Alle Effekte sind in der Benutzeroberfläche zusammengefasst, um eine bessere Benutzererfahrung zu erzielen

Die Nachbearbeitungseffekte enthalten auch eine Sammlung von Monitoren und Debug-Ansichten, mit denen du deine Effekte korrekt einrichten und Probleme in der Ausgabe beheben kannst. Die Post Processing Stacks können auch aus dem Asset Store geladen werden.

Das Post-Process Layer

Das Erste, was du zum Aktivieren der Nachbearbeitung auf einer Kamera benötigst, ist das Hinzufügen der Komponente: Component -> Rendering -> Post-process Layer.

 Post Process Layer

Folgenden Zusatz bekommst du dann bei deiner Kamera:

Post Process Volume

Im ersten Abschnitt werden die Einstellungen für die Volumemischung für diese Kamera beschrieben:

  • Trigger (Auslöser): Standardmäßig wird die Kamera selbst zugewiesen. Dies ist eine Transformation, die die Überblendungsfunktion der Volumengrafik steuert. In einigen Fällen möchtest du möglicherweise eine andere Transformation als die Kamera verwenden, z.B. Für ein Top-Down-Spiel soll der Spielercharakter die Mischung anstelle der eigentlichen Kameratransformation steuern. Wenn du dieses Feld auf Keine bzw. None setzt, werden lokale Volumengrafik für diese Ebene deaktiviert (globale funktionieren bleiben weiterhin bestehen).
  • Ebene: Eine Maske aus Ebenen, die für die Volumenmischung berücksichtigt werden soll. Es ermöglicht dir die Volumenfilterung und ist besonders nützlich, um die Volumenüberquerung zu optimieren. Du solltest dein Volume immer in dedizierten Ebenen anstatt in der Standardebene haben, um die beste Leistung zu erzielen. Standardmäßig ist es auf Nichts bzw. Nothing eingestellt. Vergiss als nicht, sie zu ändern, da sonst die Volume keine Auswirkungen hat.

Als nächstes kommt das Anti-Aliasing, das pro Kamera eingerichtet werden muss. Der Vorteil dieser Vorgehensweise im Projekt besteht darin, dass du deine Kameras so optimieren kannst, dass sie nur bei Bedarf Anti-Aliasing verwenden. Dies hat Vorteile gegenüber der globalen Einstellung. Beispielsweise kannst du für deine Hauptkamera temporäres Anti-Aliasing verwenden, für eine sekundäre Kamera, die zum Rendern einer Überwachungskamera verwendet wird, ist jedoch nur FXAA erforderlich.

Mit dem Schalter “Stop-NaN Propagation” werden alle ungültigen / NaN-Pixel gelöscht und durch eine schwarze Farbe ersetzt, bevor die Nachbearbeitung angewendet wird. Es ist im Allgemeinen eine gute Idee, diese Option aktiviert zu lassen, um Nachbearbeitungsartefakte zu vermeiden, die durch fehlerhafte Daten in der Szene verursacht werden.

Der Toolkit-Bereich enthält einige Dienstprogramme. Du kannst  den aktuellen Frame in einem der folgenden Modi nach EXR exportieren:

Vollbild (wie angezeigt): Exportiert die Kamera wie sie ist (wenn sie sich auf der in der Spielansicht angezeigten Kamera befindet, sieht der Export genauso aus wie in der Spielansicht).
Nachbearbeitung deaktivieren: Wie im vorherigen Modus, jedoch ohne Nachbearbeitung.
Pause vor Farbkorrektur (linear): Entspricht dem ersten Modus, beendet jedoch das Rendern kurz vor der Farbkorrektur. Dies ist nützlich, wenn du Bewertungs-LUTs in einer externen Software erstellen möchten.
Pause vor Farbkorrektur (Protokoll): Wie im vorherigen Modus, jedoch wird die Ausgabe protokollcodiert. Dies wird verwendet, um HDR-Grading-LUTs mit voller Präzision in einer externen Software zu erstellen.

Andere Dienstprogramme umfassen:

Alle Layer-Volumes auswählen: Wählt alle Post-Process-Volume-Komponenten aus, die sich auf diesen Post-Process-Layer auswirken können.
Alle aktiven Volumes auswählen: Wählt alle Post-Process-Volume-Komponenten aus, die derzeit diese Post-Process-Ebene betreffen.

Schließlich kannst du im letzten Abschnitt die Renderreihenfolge von benutzerdefinierten Effekten ändern.

Post Process Volumes

Die Nachbearbeitung in diesem Framework erfolgt mithilfe lokaler und globaler Volumes. Du kannst jedem Volume eine Priorität zuweisen und eine Reihe von Effektüberschreibungen vornehmen, um die Nachbearbeitungseinstellungen in Ihrer Szene automatisch zu mischen. Zum Beispiel kannst du einen Lichtvignetteneffekt global einrichten lassen, aber wenn der Spieler eine Höhle betritt, werdest du nur die Intensitätseinstellung der Vignette überschreiben, um sie stärker zu machen, während die restlichen Einstellungen intakt bleiben.

Die Post-Process Volume-Komponente kann zu jedem Spielobjekt hinzugefügt werden, einschließlich der Kamera. Im Allgemeinen ist es jedoch eine gute Idee, für jedes Volume ein dediziertes Objekt zu erstellen. Beginnen wir mit der Erstellung eines globalen Post-Process-Volumes. Erstelle ein leeres Spielobjekt und füge die Komponente hinzu:

Komponente -> Rendern -> Post-Process-Volume

Post Process Volume0

oder verwende

GameObject -> 3D-Objekt -> Post-Process-Volume

Vergiss nicht, es einer Ebene hinzuzufügen, die von der Maske verwendet wird, die in der Post-Process-Layer-Komponente festgelegt ist, die du deiner Kamera hinzugefügt hast.

Standardmäßig ist es komplett leer. Volumes haben zwei Modi:

  • Global: Ein globales Volume hat keine Begrenzung und wird auf die gesamte Szene angewendet. Du kannst natürlich mehrere davon in Ihrer Szene haben.
  • Lokal: Ein lokales Volume benötigt einen Collider oder eine Triggerkomponente, um seine Grenzen zu definieren. Jede Art von 3D-Collider funktioniert, von Würfeln bis hin zu komplexen konvexen Netzen. Es wird empfohlen, möglichst einfache Kollider zu verwenden, da das Durchqueren von Netzen sehr teuer sein kann. Lokale Volumes können auch einen Mischungsabstand haben, der den äußeren Abstand von der Volumenoberfläche darstellt, an dem das Mischen beginnt.

Möchtest du ein globales Volume, aktiviere Is Global.

Das Gewicht bzw. Weight kann verwendet werden, um den globalen Beitrag des Volumens und aller seiner Überschreibungen zu reduzieren, wobei 0 überhaupt kein Beitrag und 1 vollständiger Beitrag ist.

Das Feld Priorität definiert die Volumenreihenfolge im Stapel. Je höher diese Zahl ist, desto höher ist die Priorität eines Volumes.

Du benötigst ein Profil für dieses Volume (oder du verwendest ein Vorhandenes). Erstelle eines, indem du auf die Schaltfläche Neu klickst

Du kannst in deinem Projektfenster auch:

Erstellen -> Nachbearbeitungsprofil verwenden 

wählen.

Es wird als Asset-Datei in deinem Projekt erstellt. Um einen Profilinhalt zu bearbeiten, kannst du entweder dieses Asset auswählen oder zu einem Volume-Inspektor gehen, wo es für einen einfacheren Zugriff repliziert wird. Sobald ein Profil zugewiesen wurde, wird die neue Schaltfläche Klonen angezeigt. Dieses dupliziert das aktuell zugewiesene Profil und stellt es automatisch auf das Volume ein. Dies kann nützlich sein, wenn du schnelle Variationen desselben Profils erstellen möchten (obwohl du das Override-System nach Möglichkeit unbedingt verwenden solltest).

Du kannst damit beginnen, dem Stapel Effektüberschreibungen hinzuzufügen.

Die Anatomie eines Effekts ist wie folgt:

Jedes Feld hat links ein Kontrollkästchen zum Überschreiben. Du musst die Einstellungen, die du für dieses Volume überschreiben möchtest, umschalten, bevor du sie bearbeiten kannst. Sie kannst alles schnell ein- oder ausschalten, indem du die kleinen Verknüpfungen Alle und Keine oben links verwenden.

Der Ein- / Ausschalter oben rechts wird verwendet, um den aktiven Status des Effekts selbst im Stapel zu überschreiben (wenn du beispielsweise einen Effekt in einem Volume mit höherer Priorität erzwingen möchten), während der Umschalter in der Titelleiste aktiviert ist wird verwendet, um die Überschreibungen für diesen Effekt in diesem bestimmten Volume zu deaktivieren.

Schließlich kannst du mit der rechten Maustaste klicken und den Titel beeinflussen, um ein Schnellmenü zum Kopieren / Einfügen / Entfernen / Zurücksetzen von Einstellungen anzuzeigen.

Zu den Effekten von Post-Process Volume gehören Ambient Occlusion, Anti-aliasing, Auto Exposure, Bloom, Chromatic Abberration, Color Grading, Deferred Fog, Depth of Field, Grain, Lens Distortion, Motion Blur, Screen Space Reflections, Vignette.

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.