Engine & platform

Neue Möglichkeiten zur Anwendung globaler Beleuchtung auf Ihre Welten in Unity 6

STEVEN KENT / UNITYProduct Manager Engine Graphics
Jul 11, 2024|21 Min
Unity 6 Neue Beleuchtungsfunktionen von Global Illumination

Wir freuen uns, weitere Details über die neuen Beleuchtungsfunktionen von Unity 6 im Laufe des Jahres bekannt geben zu können.

Die neue und robuste Architektur für das Backen von Lichtern und der innovative Ansatz für die Erstellung von mit Lichtsonden beleuchteten Umgebungen mithilfe von Adaptive Probe Volumes (APV) sorgen für einen optimierten Lichterstellungsprozess. Dadurch wird die visuelle Darstellung erheblich verbessert und gleichzeitig eine hohe Leistung zur Laufzeit gewährleistet.


Beleuchten Sie Ihre Welt mit globaler Beleuchtung

Wenn Sie schon einmal mit vorberechneten Beleuchtungsdaten gearbeitet haben, wissen Sie, wie mühsam dieser Prozess sein kann. Der Vorberechnungsprozess für Lightmaps kann viel Zeit in Anspruch nehmen; Lightmap-UVs müssen erstellt werden, Sonden müssen platziert werden, damit dynamische Objekte korrekt beleuchtet werden, und Sie müssen mit großen Texturen umgehen, die den Laufzeitspeicher Ihrer Anwendungen stark belasten können.

In Unity 6 haben wir mit Adaptive Probe Volumes (APV) eine neue Möglichkeit geschaffen, qualitativ hochwertigere, mit Licht beleuchtete Umgebungen zu erstellen, und grundlegende Verbesserungen am Light-Baking-Backend für mehr Stabilität vorgenommen.

Adaptive Sondenvolumina

Ein Adaptive Probe Volume ist eine Gruppe von Light Probes, die Unity automatisch auf der Grundlage der Geometriedichte in Ihrer Szene platziert, um eine indirekte Beleuchtung zu erzeugen.

Adaptive Probe Volume werden automatisch mit einer 3D-Struktur aus "Bausteinen" gefüllt
Adaptive Probe Volumes werden automatisch mit einer 3D-Struktur aus "Bausteinen" gefüllt. Jeder Baustein enthält 64 Lichtsonden, die in einem 4 × 4 × 4-Gitter angeordnet sind.

Aufgrund seiner adaptiven Natur wird APV in Bereichen mit mehr Geometrie dichter platzierte Sonden erzeugen und weniger Sonden in Bereichen mit weniger dicht platzierten Objekten, wie dem Hintergrund einer Szene.

Adaptive Probe Volumes bieten Ihnen darüber hinaus eine ganze Reihe leistungsstarker Funktionen für die Erstellung wunderschön beleuchteter Umgebungen.

  • Ermöglicht einfachere Arbeitsabläufe für die Sondenplatzierung und schnellere Iterationen für die indirekte diffuse Beleuchtung mit Lichtsonden.
  • Die APV-Beleuchtung pro Pixel bietet eine deutlich höhere Qualität als Light Probe Groups und eine bessere Richtwirkung als Lightmaps, was zu einer hervorragenden Gesamtbeleuchtungsqualität führt.
  • Die nahtlose Integration mit Atmosphären sorgt dafür, dass Effekte wie volumetrischer Nebel in HDRP und VFX Graph Partikel in URP und HDRP durch indirekte Beleuchtung wunderschön beleuchtet werden.
  • Ermöglicht visuell atemberaubende Beleuchtungsübergänge durch Sky Occlusion und Beleuchtungsszenarien, geeignet für Tageszeit- und Licht-an/aus-Situationen.
  • Bietet mehr Kontrolle über Optimierungen für die Laufzeitleistung, basierend auf der von Ihnen verwendeten Render-Pipeline und Zielhardware.
  • Führt eine Reihe von Streaming-Funktionen aus, die das Streaming von Light Probe-Daten von der Festplatte zur CPU und von der CPU zur GPU ermöglichen.
  • Bietet ein leistungsfähiges Instrumentarium zur Reduzierung von Lichtlecks.
APV integriert sich nahtlos in die Atmosphäre
APV lässt sich nahtlos in Atmosphären einbinden. Das bedeutet, dass Effekte wie volumetrischer Nebel in HDRP und VFX-Graph-Partikel in URP & HDRP jetzt wunderschön durch indirekte Beleuchtung beleuchtet werden. Verwenden Sie das Projekt [HDRP] Gate Backyard aus dem Asset Store.
So haben wir die URP Oasis Scene auf die Verwendung von APV umgestellt

Das URP 3D-Beispielprojekt verwendet derzeit die neuesten 2022 LTS-Funktionen .

Zu Demonstrationszwecken haben wir in diesem Blog-Beitrag die URP 3D-Beispielszenen von 2022 LTS auf Unity 6 Preview und die Funktion Adaptive Probe Volumes aktualisiert.


Die Oasis-Szene, die für die Verwendung der adaptiven Sondenvolumina konvertiert wurde
Die Oasis-Szene wurde von 2022 LTS nach Unity 6 konvertiert, wobei Adaptive Probe Volumes für die indirekte Beleuchtung verwendet wurden.
Platzieren von Sonden mit adaptiven Sondenvolumina

APV ist ein volumenbasiertes System, das die Platzierung von Sonden automatisiert, anstatt sie von Hand zu platzieren.

Auf der Registerkarte "Allgemeine Einstellungen" für APV können Sie Parameter wie "Min" und "Max Probe Spacing" einstellen, um die Erstellung mehrerer Unterteilungsebenen auf der Grundlage der umgebenden Geometrie zu steuern. Standardmäßig wird für dichte Bereiche die höchste Auflösung verwendet, während für Bereiche mit weniger Geometrie niedrigere Dichtegrade verwendet werden. Dieses automatische und adaptive Verhalten gewährleistet eine effiziente Ressourcenzuweisung, die sich auf die Bereiche konzentriert, in denen sie am dringendsten benötigt werden.

 Geben Sie an, welche Unterteilungsebenen APV im Beleuchtungsfenster verwenden soll
Im Beleuchtungsfenster und auf der Registerkarte Adaptive Probe Volume können Sie festlegen, welche Unterteilungsebenen APV verwenden soll.

Um automatisch Sonden zu erzeugen, können Sie ein Adaptives Sondenvolumen erstellen. Während Sie arbeiten, können Sie Live-Updates sehen, so dass Sie eine Vorschau der Sondenplatzierung ohne Backen erhalten. Diese Aktualisierungen basieren auf den Steinen und den Unterteilungsebenen, die Sie zuvor definiert haben, und werden dann entsprechend der Nähe der benachbarten Geometrie angepasst.

Vor dem Backen die verschiedenen Sondenbausteine in Echtzeit visualisieren
Der Debug-Modus "Live-Updates" kann dabei helfen, die verschiedenen Bricks der Sonden vor dem Backen in Echtzeit zu visualisieren.
Beleuchtung generieren

Generate Lighting berechnet alle Beleuchtungsdaten vor, einschließlich der Lichtsonden, die Sie in Ihrer Szene visualisieren können. In der Vorschau mit Bausteinen können Sie die verschiedenen Unterteilungsebenen sehen, die beim Platzieren der Sonden angewendet wurden.

Sonden und die verschiedenen Unterteilungsebenen können mit dem Rendering-Debugger angezeigt werden
Sonden und die verschiedenen Unterteilungsebenen können mit dem Rendering-Debugger angezeigt werden.
Bewältigung der Herausforderungen durch Lichtlecks

Wenn Sie schon einmal mit Lichtsondendaten gearbeitet haben, kennen Sie vielleicht die üblichen Probleme mit Lichtlecks. Bei der Entwicklung von APV haben wir eine ganze Reihe von Werkzeugen hinzugefügt, um Probleme mit Lichtlecks zu beheben, wie z. B. virtueller Versatz, Dilatation, Probe Adjustment Volumes, Rendering-Ebenen und die Modi zur Vermeidung von Lichtlecks "Performance" und "Qualität".

Hier ist ein Beispiel. Mit Hilfe von Debug-Ansichten für die Beleuchtung können wir einen problematischen Anwendungsfall für Lichtlecks beobachten. In dieser Situation ist das helle Licht von außen durch die Wände und den Boden des Gebäudes sichtbar. Im Außenbereich besteht das gegenteilige Problem, da das Licht aus dem Innenraum nach außen dringt. Dies ist wahrscheinlich auf die geringe Auflösung (1 Meter zwischen den Sonden) und die dünnen Wände zurückzuführen. Lassen Sie uns untersuchen, wie wir dies angehen können.

Lichtlecks sind besonders in Bereichen sichtbar, in denen sich die Beleuchtung drastisch ändert und die Wände dünn sind.
Bei der Untersuchung der Debug-Ansicht "Globale Beleuchtung" ist der Lichtaustritt besonders in Bereichen sichtbar, in denen sich die Beleuchtung drastisch ändert und die Wände dünn sind.

Um dieses Problem zu untersuchen, können Sie mit der Option Debug Probe Samplingjede der abgetasteten Sonden zusammen mit ihrer jeweiligen Gewichtung anzeigen. In unserem Fall sehen wir, dass das Ergebnis zwischen den hellen Sonden von außen und den dunklen Sonden von innen interpoliert wird. Im Idealfall sollte das Innere des Zeltes nur die Innensonden beproben.

Debug Probe Sampling Option zum Verständnis, wie Sonden abgetastet werden
Die Option Debug Probe Sampling eignet sich hervorragend, um zu verstehen, wie Sonden zur Laufzeit abgetastet werden, und um mögliche Probleme zu erkennen.

Mit Rendering Layers for APV(eingeführt in 6000.1f.1) können Sie bis zu vier verschiedene Masken erstellen und das Sampling für bestimmte Objekte auf diese spezifischen Masken beschränken. Dies kann sehr nützlich sein, um zu verhindern, dass innere Objekte äußere Sonden abtasten, oder umgekehrt.

Bei der Erzeugung von Beleuchtungen weist das System den Sonden während des Backvorgangs automatisch Schichten zu, die auf den in der Nähe befindlichen Objekten basieren, so dass die manuelle Zuweisung von Schichten pro Sonde entfällt. Sobald dies geschehen ist, können SieBeleuchtung erzeugen und beobachten, dass die Undichtigkeit des Zeltes dank der manuell erstellten getrennten Innen- und Außenmasken reduziert wird.

Die Lichtstreuung kann unabhängig von der Auflösung der Sonde verbessert werden.
Zur Laufzeit werden die Objekte auf der Grundlage der Ebene, der sie zugewiesen sind, abgetastet, was die Probleme mit dem Lichtaustritt unabhängig von der Auflösung der Sonde verbessert.

Um noch mehr Kontrolle über die Vermeidung von Lichtlecks zu erhalten, können Sie die Leckreduzierungsmodi "Leistung" und "Qualität" von Unity nutzen.

Der Leistungsmodus dient der Leckreduzierung, indem er den Ort der Probenahme von ungültigen Sonden weg verlagert. Dies funktioniert in der Regel gut in einfachen Szenarien, in denen ein geeigneter Probenahmeort für alle gültigen Sonden ermittelt werden kann, während alle ungültigen umgangen werden. Je nach Konfiguration der Sonde kann es jedoch sein, dass ein solcher optimaler Probenahmeort nicht verfügbar ist. Dies führt dann zur Entnahme ungültiger Proben und zu potenziellen Lecks.

Der Qualitätsmodus (eingeführt in 6000.0.3f1) ist jetzt standardmäßig aktiviert und verwendet bis zu drei Probenahmeversuche, um sicherzustellen, dass nur gültige Sonden verwendet werden. Dieser Modus kann zu einem leichten Overhead bei der Laufzeitleistung führen, was sich besonders auf Low-End-Plattformen bemerkbar machen kann.

Sie können Leckreduzierungs- und Rendering-Ebenen kombinieren, um Lichtlecks noch weiter zu verhindern. Dieser Modus stellt sicher, dass ungültige Sonden, sei es aufgrund von Gültigkeitsproblemen oder weil sie sich auf einer anderen Ebene befinden, nicht abgetastet werden.

Der Qualitätsmodus trägt dazu bei, dass weniger Fälle von Lichtlecks auftreten.
Im Gegensatz zum Leistungsmodus trägt der neue Qualitätsmodus dazu bei, dass weniger Fälle von Lichtverlust auftreten.
Bewältigung von Problemen mit Nähten

Außerdem haben wir die mehrfachen Unterteilungsebenen verbessert, indem wir potenziell sichtbare Nähte zwischen verschiedenen Ebenen reduziert haben (eingeführt in 6000.0.4f1). Dies wird automatisch erreicht, indem die Werte von Grenzsondierungen, die zwischen zwei Ebenen liegen, durch vorinterpolierte Werte ersetzt werden. Da dieser Prozess zur Bake-Zeit stattfindet, entstehen zur Laufzeit keine Leistungseinbußen.

Die automatische Nahtentfernung hilft, die sichtbaren Linien zwischen den Unterteilungsebenen zu verbergen
In der Debug-Ansicht für die globale Beleuchtung wird deutlich, wie diese automatische Nahtentfernung dazu beiträgt, die Unterteilungsebenen zu verbergen, indem sie weiche Übergänge zwischen ihnen schafft.
Erzielen Sie dynamischere visuelle Erlebnisse mit APV Lighting Transitions

Mit APV können Sie visuell atemberaubende Beleuchtungsübergänge durch Sky Occlusion und Beleuchtungsszenarien erzielen, die sich für Tageszeit- und Licht-an/aus-Situationen eignen.

Als Nächstes finden Sie zwei Beispiele für Beleuchtungsübergänge, zunächst durch Beleuchtungsszenarien mit APV in der Szene Oase des URP 3D-Beispielprojekts, dann durch Sky Occlusion mit APV in der Szene Garten.

Hinzufügen von Beleuchtungsszenarien mit APV in der Oase

APV erleichtert verschiedene Beleuchtungsszenarien, indem es das Umschalten oder Überblenden zwischen gebackenen Beleuchtungsdaten ermöglicht. Diese Funktion ist besonders nützlich für die Simulation von Tageszeiten oder das Umschalten zwischen ein- und ausgeschalteten Lichtern innerhalb derselben Szene oder desselben Backsets.

Beleuchtungsszenarien verwalten nur die gebackenen APV-Lichtsondendaten; andere Elemente müssen manuell bearbeitet werden. Um ein Beispiel in der Oasis-Szene zu geben, haben wir ein Skript erstellt, das den Himmel, die Lichter, die Nebelparameter und die Reflexionssonden aktualisiert. APV gebackene Szenarien können zur Laufzeit mit der ProbeReferenceVolume API verwaltet werden, ein Beispiel ist in der Dokumentation zu finden.

Diese Szene verwendet ein Tag- und Nachtszenario, um mehrere Versionen der indirekten diffusen Beleuchtung zu backen, die mit APV erstellt wurde.
Diese Szene verwendet ein Tag- und Nachtszenario, um mehrere Versionen der indirekten diffusen Beleuchtung zu backen, die mit APV erstellt wurde.
Mehrere Szenarien können miteinander kombiniert werden, um fließende Übergänge zwischen Tag und Nacht zu schaffen.
Indirektes, diffuses Licht aus verschiedenen Szenarien kann gemischt werden, um weiche Übergänge zwischen Tag und Nacht zu schaffen. Dies wird erreicht, indem die ProbeReferenceVolume-API verwendet wird, um eine Überblendungsvariable freizulegen, die z. B. mit der Timeline animiert werden kann.
Nutzung der Himmelsokklusion mit APV im Garten

Sky Occlusion bietet eine Alternative zu Beleuchtungsszenarien, um Beleuchtungsübergänge in der Szene zu verwalten. Es handelt sich um einen einfacheren Aufbau mit nur einem Backvorgang, bei dem keine mehreren Szenarien erforderlich sind. Stattdessen behandelt Sky Occlusion ausschließlich die Beleuchtung des Himmels und erstreckt sich daher nicht auf die Verwaltung der indirekten Beleuchtung für gerichtete oder punktuelle Lichter.

Bildsequenz zur Beschreibung der Anwendung von Sky Occlusion in der Gartenszene.
Die Gartenszene mit der Funktion Himmelsokklusion. In dieser Bildsequenz sehen Sie zunächst die Umgebungssonde allein, dann die kombinierte Beleuchtung durch die Umgebungssonde und die Himmelsabdeckung und schließlich den Beitrag der Himmelsabdeckung selbst. Schließlich haben wir die Debug-Darstellung der APV-Okklusion bereitgestellt.

Bei der Himmelsverdeckung werden zusätzliche gebackene Daten verwendet, um die Himmelsbeleuchtung anders zu handhaben als beim Standard-APV-Himmelbacken. In diesen Daten wird die Menge des Himmelslichts gespeichert, die jeder Bereich der Szene erhalten soll, so dass die Farbe und Intensität der Himmelsbeleuchtung zur Laufzeit angepasst werden kann. Durch die Verwendung einer dynamischen Umgebungssonde zur Laufzeit zusammen mit diesen gebackenen und statischen Okklusionsdaten wird eine gute Annäherung an die Himmelsbeleuchtung erreicht und gleichzeitig eine dynamische Anpassung der Szenenbeleuchtung ermöglicht.

Sky Occlusion wird sowohl in URP als auch in HDRP unterstützt. Im HDRP wird die Umgebungssonde automatisch vom HDRP Physical Sky aktualisiert. In URP kann die Umgebungssonde bei Verwendung des Skybox-Modus jedoch nicht automatisch in Echtzeit aktualisiert werden, wenn sich der Himmel ändert. Stattdessen muss die Farbe manuell mit dem Farbverlaufs- oder Farbmodus animiert werden, um mit den animierten Himmelsbildern übereinzustimmen, da Unity sich nicht automatisch an die wechselnde Himmelsfarbe anpasst.

Am Beispiel der Gartenszene ermöglicht der Farbverlaufsmodus in den Umgebungseinstellungen die manuelle Animation der Farbe der Umgebungssonde. In Verbindung mit Okklusionsdaten kann dieses Setup eine überzeugende Annäherung für die Animation der diffusen Beleuchtung des Himmels schaffen, die sich für die Darstellung wechselnder Tageszeiten eignet. Dabei wird ein einziges Bake ohne mehrere Beleuchtungsszenarien verwendet, und es kann eine breite Palette von Farbvariationen erzeugt werden.

Okklusionsdaten in Verbindung mit dem Gradientenmodus in den Umgebungseinstellungen ermöglichen die manuelle Animation der Farbe der Umgebungssonde.
Okklusionsdaten in Verbindung mit dem Gradientenmodus in den Umgebungseinstellungen ermöglichen die manuelle Animation der Farbe der Umgebungssonde. Verwenden Sie die Azure[Sky] Dynamic Skybox aus dem Asset Store für den Himmelsshader.
Weitere Informationen über APV
Leichtes Backen in Unity 6

Mit der neuen Unity Light Baking Architektur in Unity 6 ist der GPU Light Baker nun aus der Vorschau heraus.

Lightmapped architektonische Innenraumumgebung. Inhaltliche Anerkennung: ArchvizPRO Innenraum Vol.10
Lightmapped architektonische Innenraumumgebung. Inhaltliche Anerkennung: ArchvizPRO Innenraum Vol.10

Der neue Light Baker wurde mit Blick auf die Reaktionsfähigkeit des Editors und die Backgeschwindigkeit entwickelt. Das bedeutet, dass Unity bei der Verwendung des On-Demand-Backens nun einen "Schnappschuss" des Szenenzustands macht, wenn die Schaltfläche "Generate" angeklickt wird. Unity prüft den Zustand der Szene nicht mehr bei jedem Frame, was früher die Leistung des Editors beeinträchtigte.

Dieses neu gestaltete Backend hat unsere Codebasis erheblich vereinfacht, so dass es einfacher und schneller ist, Fehler zu beheben, und das Risiko der Einführung neuer Fehler verringert wird.

Neues Backprofil

Außerdem stellen wir Ihnen ein neues Backprofil zur Verfügung, mit dem Sie den für Sie passenden Arbeitsablauf auswählen können.

Der neue Light Baker ermöglicht es Ihnen, Ihre Arbeitsabläufe zu wählen, vom geringsten Speicherverbrauch bis hin zu höherer Leistung.
Der neue Light Baker ermöglicht es Ihnen, Ihre Arbeitsabläufe zu wählen, vom geringsten Speicherverbrauch bis hin zu höherer Leistung.

Sie können einen Bereich von "niedrigster Speichernutzung" - ideal, wenn Sie im Editor weiterarbeiten wollen und die beste Gesamtreaktion des Editors wünschen - bis zu "höchster Leistung" wählen, was nützlich ist, wenn Sie die Arbeit so schnell wie möglich erledigen wollen und während der Backzeit an nichts anderem im Editor arbeiten müssen.

Auto Generate ist jetzt der interaktive GI-Debug-Vorschau-Modus

Die iterative Erstellung und Fehlerbehebung von gebackenen Beleuchtungsdaten ist ein wichtiger Anwendungsfall für Ersteller, die gebackene Global Illumination (GI) verwenden.

Aus diesem Grund haben wir eine neue interaktive Vorschaufunktionalität zu verschiedenen GI-bezogenen Szenenansichts-Zeichenmodi hinzugefügt, die Unitys Auto Generate durch einen speziellen interaktiven GI-Debug-Vorschau-Modus für die Vorschau von Beleuchtungsdaten ersetzt.

Interaktiver GI-Debug-Vorschau-Modus in Unity 6
Interaktiver GI-Debug-Vorschau-Modus in Unity 6

Dadurch können Debug-Ansichten interaktiv aktualisiert werden, wenn die Szene geändert wird. Die Vorschau ist nicht-destruktiv, da sie die gebackenen Beleuchtungsdaten nicht ersetzt.

Die Abkehr von der alten Auto-Generate-Architektur von Unity bedeutet, dass wir die Baking-Pipeline für mehr Stabilität optimieren können.

Enlighten Realtime GI Hinweis auf den Verfallspfad

Beachten Sie, dass Unity 6 die letzte unterstützte Version für Enlighten Realtime GI ist. Weitere Details zu unserem bereits kommunizierten Abschaffungspfad finden Sie im Forumspost Update on Global Illumination 2021.

Erfahren Sie mehr über die Beleuchtungsfunktionen von Unity 6

Hier finden Sie Links zu früheren Anfragen nach Feedback für die Beta-Versionen 2023.1, 2023.2 und Unity 6 (2023.3):

Wir freuen uns darauf, Ihre Kreationen zu sehen, die unsere neuen Beleuchtungsfunktionen in Unity 6 nutzen. Bitte senden Sie uns Ihr Feedback im Global Illumination Forum oder im neuen Diskussionsbereich von Unity!