Lichtfunktionen sind Materialien, die auf Lichter angewendet werden können, um die Lichtintensität auszublenden und zu filtern. Dies ist ein materialbasierter Ansatz, der bedeutet, dass Sie animierte Effekte erzielen können, die mit Lichtern funktionieren, wenn sie auf undurchsichtige Netze angewendet werden. Sie unterstützen auch Schatten mit volumetrischem Nebel, wodurch Beleuchtungsfunktionen besonders nützlich für die Erstellung von Beleuchtungsvariationen sind, wie etwa Kaustiken in Wasser, Wolken und projizierten Schablonen.
Lichtfunktion aus dem Projekt „Content Examples“, die eine materialgesteuerte Animation mithilfe einer Lichtfunktion mit volumetrischem Nebel demonstriert.
Lichtfunktionen können nur auf Lichter angewendet werden, deren Mobilität auf Beweglich oder Stationär gesetzt ist und können nicht in Lichtkarten eingebrannt werden. Lichtfunktionen durchlaufen dieselben aufwendigen Rendering-Durchgänge wie Lichter, die dynamische Schatten werfen, da der Beitrag der Lichtfunktion zuerst im Bildschirmbereich akkumuliert werden muss. Der zweite Durchgang der Lichtfunktion bewertet dann die Beleuchtung im Bildschirmbereich. Dies ist ein sequentieller Vorgang, der auf der GPU ausgeführt wird und aufgrund der stattfindenden Ressourcensynchronisierungen und Cache-Leervorgänge mehr Zeit in Anspruch nimmt.
Nachfolgend finden Sie einige Beispiele für Lichtfunktionen, die bei unterschiedlichen Lichtarten verwendet werden.
Gerichtetes Licht mit Wolkenschatten-Lichtfunktion | Scheinwerferlicht mit Kaustiklichtfunktion | Scheinwerfer- und Punktlicht mit Farblichtfunktion mit volumetrischem Nebel |
Erstellen einer Lichtfunktion
Sie können eine Lichtfunktion in einem Material erstellen, indem Sie die Materialdomäne zu Lichtfunktion einstllen. Alle Knoten speisen in den Emissionsfarbe-Input am Hauptmaterialknoten.
Anwenden einer Lichtfunktion auf ein Licht
Um ein Lichtfunktionsmaterial mit einem Licht zu verwenden, weisen Sie es einem Lichtfunktionsmaterial-Slot des Lichts mit dem Details-Panel des Lichts zu.
Sobald einer Leuchte eine Lichtfunktion zugewiesen wurde, ist Schatten werfen nicht nötig, um die Anzeige des Lichtfunktionsmaterials zu ermöglichen.
Lichtfunktionen umfassen die folgenden Eigenschaften für Lichter:
| Eigenschaft | Beschreibung |
|---|---|
Lichtfunktionsmaterial | Der Steckplatz zum Anwenden eines Lichtfunktionsmaterials auf dieses Licht. Nur auf Lichter ohne Lichtzuordnung kann eine Lichtfunktion angewendet werden. |
Lichtfunktionsskala | Skaliert die projizierte Lichtfunktion. und Y skalieren die Richtungen senkrecht zur Lichtrichtung. Z skaliert entlang der Lichtrichtung. |
Überblendabstand | Legt eine Entfernung fest, bei der die Lichtfunktion Deaktivierte Helligkeit vollständig ausgeblendet werden soll. Dies ist nützlich, um Aliasing von Lichtfunktionen zu verbergen, die in der Entfernung angewendet werden. |
Helligkeit deaktiviert | Auf das Licht angewendeter Helligkeitsfaktor, wenn die Lichtfunktion zwar angegeben, aber deaktiviert ist, wie etwa bei Szenenaufnahmen, bei denen eine Ansicht mit deaktivierten Schatten verwendet wird. Dieser Wert sollte auf die durchschnittliche Helligkeit des emittierenden Eingangs des Lichtfunktionsmaterials eingestellt werden, die zwischen 0 und 1 liegen sollte. |
Lichtfunktionsatlas
Lichtfunktionen verwenden dieselben teuren Rendering-Durchgänge wie Lichter, die dynamische Schatten werfen. Der Beitrag der Lichtfunktion muss zuerst im Bildschirmbereich akkumuliert werden und dann muss ein zweiter Durchgang durchgeführt werden, der die Beleuchtung im Bildschirmbereich auswertet. Dieser sequentielle Vorgang auf der GPU nimmt aufgrund der Ressourcensynchronisierung und Cache-Leerungen mehr Zeit in Anspruch.
Um die hohen GPU-Kosten während dieses Prozesses zu reduzieren, ist Lichtfunktionsatlas ein generativer Prozess, der verwendet wird, um animierte Lichtfunktionen in Kacheln (oder 2D-Texturen) einzubaken, aus denen der Atlas besteht. Diese 2D-Texturen werden gespeichert und dann auf die Szene projiziert. Um ein besseres Gefühl für diesen Vorgang zu bekommen, können Sie die Visualisierung des Lichtfunktionsatlas verwenden, um zu sehen, wie jede Lichtfunktion in der Szene als Kachel im Atlas gespeichert ist.
Die folgende Beispielszene enthält vier Lichtfunktionen, die in 2D-Texturkacheln eingebrannt und im Atlas gespeichert wurden.
Das Einbinden von Lichtfunktionen in die 2D-Textur von Atlas ist ein vollständig paralleler Prozess, der auf der GPU ausgeführt wird, und das Ergebnis wird zwischen allen Ansichten einer Szene geteilt. Dann, während der Lichtpass alle Lichter mit einem Lichtfunktionsmaterial ohne aktivierten Schattenwurf können parallel auf dem Bildschirm gesammelt werden. Dies kann zu erheblichen Einsparungen bei der GPU-Zeit führen. Beispielsweise Talisman-Umgebungsvorlage Im Unreal Engine Fortnite Editor (UEFN) wurde eine GPU-Zeitreduzierung von mehr als 2 Millisekunden (ms) gemessen.
Im Gegensatz zu älteren Lichtfunktionen kann der Lichtfunktionsatlas Graustufen- oder farbige Lichtfunktionsmaterialien unterstützen.
Einschränkungen des Lichtfunktionsatlas
Materialien mit Lichtfunktion unterliegen einigen Einschränkungen, damit sie gültig sind und in einen Atlas mit Lichtfunktionen eingearbeitet werden können. Beachten Sie Folgendes, wenn Sie den Lichtfunktionsatlas für Ihr Projekt aktivieren:
Sie können den Tiefenpuffer oder die Weltposition nicht abtasten.
Sie können den GBuffer nicht abtasten.
Um eine Textur abzutasten, sollten UVs nicht manipuliert werden. Wenn Sie dies tun, ist es jedoch wichtig, dass die UV-Manipulation an den Texturraumrändern der Lichtfunktion ausgerichtet ist. Andernfalls ist der Atlas-Slot nicht wiederholbar.
Dieses Problem tritt bei gerichteten und rechteckigen Lichtern oder allen Lichtern auf, die die Skalierungssteuerung aus ihrem Details-Panel verwenden.
Derzeit ist es für Richtungslichter erforderlich, den Atlas nicht abzutasten.
Wenn diese Einschränkungen erfüllt sind, kann für die schnellen Beleuchtungsbewertungsdurchläufe eine Lichtfunktion in den Lichtfunktionsatlas integriert werden. Lichtfunktionen werden automatisch erkannt und in den Lichtfunktionsatlas ein- und ausgeroutet.
Lichtfunktionsatlas-Visualisierung
Sie können visualisieren, welche Lichtfunktionen in den Lichtfunktionsatlas aufgenommen oder daraus ausgeschlossen wurden, indem Sie den Befehl ShowFlag.VisualizeLightFunctionAtlas 1 benutzen
In dieser Visualisierung werden folgende Informationen angezeigt:
Der Lichtfunktionsatlas zeigt alle Lichtfunktionen, die Teil seines Atlas sind.
Informationen zu Lichtfunktionen in der Szene:
Die Anzahl der Lichtfunktionen im Atlas.
Die Anzahl der Lokaler Licht-Sampling-Atlas.
Eine Farbtabelle, die die Anzahl der Lichter verknüpft, die eine Lichtfunktion im Atlas beeinflussen.
Eine Liste von Lichtfunktionen, die nicht mit dem Lichtfunktionsatlas kompatibel sind.
Light Function Atlas-Projekteinstellungen
Die folgenden Eigenschaften finden Sie im Fenster Projekteinstellungen unter Engine > Rendering in der Kategorie Lichtfunktionsatlas:
| Eigenschaft | Beschreibung | Standardzustand |
|---|---|---|
Lichtfunktionsatlas | Wähle das Format der Lichtfunktion-Atlas-Textur. | 8-Bit-Graustufen |
Volumetrischer Nebel verwendet Lichtfunktionsatlas | Aktivieren Sie die Unterstützung für die Lichtfunktion bei volumetrischem Nebel, wenn der Lichtfunktionsatlas aktiviert ist. | Aktiviert |
Zurückgestellte Beleuchtung verwendet Light Function Atlas | Aktivieren Sie die Unterstützung für die Lichtfunktion bei verzögerter Beleuchtung (Mehrfachdurchgang und gruppiert), wenn der Lichtfunktionsatlas aktiviert ist. | Aktiviert |
Einebeneiger Wassernutzungs-Lichtfunktionsatlas | Aktivieren Sie die Unterstützung für die Lichtfunktion auf einebeneigem Wasser, wenn der Lichtfunktionsatlas aktiviert ist. | Deaktiviert |
Translucent verwendet Lichtfunktionsatlas | Aktivieren Sie die Unterstützung für die Lichtfunktion auf durchscheinenden Materialien mithilfe des Vorwärtsschattierungsmodus, wenn der Lichtfunktionsatlas aktiviert ist. | Deaktiviert |
Einstellung Lichtfunktion Atlasformat
Standardmäßig verwendet der Lichtfunktionsatlas Graustufen für Lichtfunktionen, aber Sie können dies in den Projekteinstellungen ändern, indem Sie die Lichtfunktionsatlasformat auf 8-Bit-RGB-Farbe eintellen, um sie dazu zu bringen, Farbe zu verwenden. Farblichtfunktionen funktionieren mit volumetrischem Nebel, globaler Lumen-Beleuchtung und Reflexionen sowie mit Materialien, die auf durchscheinendes oder einebeneiges Wasser eingestellt sind.
Farblichtfunktionen erfordern, dass die Projekteinstellung Zurückgestellte Beleuchtung verwendet Light Function Atlas aktiviert ist. Diese Einstellung ist bei Verwendung der Lichtfunktion Atlas standardmäßig aktiviert.
Lichtfunktionsatlas für durchscheinende und einebeneige Wassermaterialien
Standardmäßig wird für die verzögerte Beleuchtung der Lichtfunktion Atlas volumetric fog und Lumen global illumination and reflections verwendet. Sie können die Wiedergabetreue Ihres Projekts mit Lichtfunktionen weiter steigern, indem Sie diese aktivieren, um das Sampling auf durchscheinenden und single layer water Materialien zu unterstützen.
Sie können die Unterstützung für durchscheinende und einebeneige Wassermaterialien in den Projekteinstellungen unter Engine > Rendering in Lichtfunktionsatlas mit Translucent verwendet Lichtfunktionsatlas und Einebeneiger Wassernutzungs-Lichtfunktionsatlas.
Translucent Verwendet Lichtfunktion Atlas: Deaktiviert | Translucent Verwendet Lichtfunktion Atlas: Aktiviert |
Wenn Translucent verwendet Lichtfunktionsatlas aktiviert ist, kann jedes durchscheinende Material, das seine Beleuchtungsmodus auf Oberflächen-Vorwärtsschattierung hat, auf seiner Oberfläche eine Lichtfunktion erhalten. Während Licht auf die Oberfläche eines durchscheinenden Materials fällt, ist die Lichtfunktion auf der Oberfläche nur dann sichtbar (in Graustufen oder Farbe), wenn das Material entsprechend eingerichtet ist.
Durchscheinendes Material mit Beleuchtungsmodus auf „Oberflächentransluzenzvolumen“ eingestellt. | Durchscheinendes Material mit Beleuchtungsmodus auf „Surface ForwardShading“ eingestellt. |
Wenn Einebeneiger Wassernutzungs-Lichtfunktionsatlas aktiviert ist, erhält ein Wasserkörper mit einebeneigem Wassermaterial Lichtfunktionen, die von einer Lichtquelle ausgehen. absorption coefficients und scattering coefficients des einebeneigen Wassermaterials beeinflussen die Optik der Lichtfunktion unterhalb der Wasseroberfläche. Diese Eigenschaften beeinflussen, wie sich Licht durch das Medium bewegt, wobei die Streuung von blauem Licht standardmäßig dazu führt, dass Farben im roten Spektrum gedämpft werden.
Einebeneiger Wasserverbrauchs-Lichtfunktionsatlas: Deaktiviert | Einebeneiges Wasser nutzt Lichtfunktion Atlas: Aktiviert |
Wenn Sie das standardmäßige einebeneige Wassermaterial mit einem Wasserkörper verwenden, können Sie die Rauheit anpassen, um die Lichtfunktion mehr oder weniger sichtbar zu machen.
Zusätzliche Hinweise zum Lichtfunktionsatlas
Dies sind einige zusätzliche Hinweise und Konsolenvariablen, die Sie bei der Arbeit mit dem Lichtfunktionsatlas verwenden können:
Lichtfunktionen im Texturatlas werden entsprechend den für die Lichtkomponente festgelegten Parametern ordnungsgemäß gekachelt und ausgeblendet.
Ein instanziiertes Lichtfunktionsmaterial verwendet seinen eigenen Steckplatz unabhängig von dem Material, das es instanziiert.
Für Farblichtfunktionen wird ein R8-Texturformat verwendet, wenn das Format auf 8-Bit-Graustufen eingestellt ist. Wenn es anders eingestellt ist, wird ein R8G8B8-Texturformat verwendet.
Nützliche Konsolenvariablen:
r.LightFunctionAtlas: Hiermit können Sie den Lichtfunktionsatlas aktivieren/deaktivieren und ältere Lichtfunktionen verwenden.r.LightFunctionAtlas.SlotResolution: Legt die Auflösung fest, mit der ein Lichtfunktionsmaterial gebkt wird. Die Auflösung können Sie der Visualisierung des Lichtfunktionsatlas entnehmen.r.LightFunctionAtlas.Größe: Legt die Größe des Lichtfunktionsatlas fest. Ein Wert von 4 (4x4) bedeutet, dass maximal Platz für 16 in den Atlas eingebrannt Lichtfunktionsmaterialien vorhanden ist. Sie können die Atlasgröße in der Lichtfunktions-Atlasvisualisierung sehen.