MegaLights ist ein völlig neuer direkter Beleuchtungspfad in Unreal Engine 5, der es Künstlern ermöglicht, deutlich mehr dynamische Bereichslichter und Bereichslichter mit Schatten zu platzieren als je zuvor.
MegaLights wurde für die Unterstützung von Konsolen der aktuellen Generation entwickelt und nutzt Raytracing, um realistische weiche Schatten von verschiedenen Bereichslichterarten zu aktivieren.
MegaLights senkt nicht nur die Kosten für dynamische Schatten, sondern auch die Kosten der Lichtauswertung ohne Schatten, was den Einsatz teurer Lichtquellen wie texturierter Bereichslichter auf Konsolen ermöglicht.
MegaLights unterstützt auch volumetrischen Nebel.
Verwenden von MegaLights
Du kannst MegaLights für dein Projekt über die Projekteinstellungen in der Kategorie Rendering > Direkte Beleuchtung aktivieren. Dabei wirst du dazu aufgefordert, auch Hardware-Raytracing unterstützen zu aktivieren, was eine empfohlene Einstellung für MegaLights ist.
Sobald die Option aktiviert ist, werden alle lokalen Lichter vom MegaLights-System verarbeitet. MegaLights kann über die Lichtkomponenten-Eigenschaft MegaLights erlauben pro Licht deaktiviert werden. Du kannst außerdem MegaLights-Schattenmethode so einrichten, dass als Schattenquelle entweder Ray Tracing (Standard) oder Virtuelle Shadow-Maps (VSMs) auswählt wird.
Virtuelle Shadow-Maps werfen Schatten direkt aus der nicht vereinfachten Nanite-Geometrie, Bereichsschatten werden aber nur angenähert. Für virtuelle Shadow-Maps entstehen pro Licht CPU-, Speicher- und GPU-Zeit-Overhead für die Vorbereitung von Shadow-Map-Tiefen.
Für eine genauere Steuerung innerhalb eines einzelnen Projekts kann MegaLights mit den Nachbearbeitungsvolumen-Einstellungen aktiviert oder deaktiviert werden.
MegaLights kann pro Skalierbarkeitsstufe oder Geräteprofil mit r.MegaLights.Allow 0 deaktiviert werden.
Technikübersicht
MegaLights ist eine stochastische direkte Beleuchtungstechnik, die direkte Beleuchtung durch das Bedeutungssampling von Lichtern löst. Es verfolgt eine feste Anzahl Strahlen pro Pixel auf wichtige Lichtquellen. Wenn eine Lichtquelle von einem Strahl getroffen wird, wird der Beitrag dieses Lichts zum aktuellen Pixel hinzugefügt.
Dieser Ansatz hat einige wichtige Konsequenzen:
Direkte Beleuchtung wird in einem einzigen Durchlauf auf eine einheitliche Art und Weise gehandhabt und ersetzt mehrere bestehende Schattenwurf- und Schattentechniken des aufgeschobenen Renderers.
MegaLights verringert nicht nur die Kosten der Schattenbildung, sondern auch die Kosten der eigentlichen Schattierung.
MegaLights hat einen konstanten Performance-Overhead, aber die Qualität kann mit zunehmender Beleuchtungskomplexität bei einem bestimmten Pixel sinken.
Wo die aufgeschobene Schattierung eine konstante Beleuchtungsqualität hat, steigen die GPU-Kosten mit der Anzahl der Lichter. MegaLights haben hingegen eine konstante Performance, aber die Qualität hängt von der Beleuchtungskomplexität an einem bestimmten Pixel ab.
MegaLights ersetzt die folgenden Funktionen:
Distanzfeldschatten von Shadow-Maps
Schatten mit Raytracing
Aufgeschobene Schattierung (BRDF- und Lichtbewertung)
Schatten- und Lichtbewertung von volumetrischem Nebel
Projektion virtueller Shadow-Maps
Virtuelle Shadow-Maps können weiterhin mit MegaLights verwendet werden, wenn sie als Schattenmethode in den Einstellungen der einzelnen Licht-Actors ausgewählt werden.
Standardmäßig verfolgt MegaLights zuerst einen kurzen, konservativen Bildschirmbereich-Strahl, um kleine Details aufzunehmen, die in der vereinfachten Raytracing-Szene möglicherweise nicht verfügbar sind. Wenn ein solcher Strahl außerhalb des Bildschirms oder hinter einem Objekt erscheint oder einfach seine maximale Länge erreicht, dann setzt MegaLights das Tracing ab der letzten gültigen Position fort, wobei Hardware- oder Software-Raytracing zum Einsatz kommt. MegaLights können auch für das Raytracing einer virtuellen Shadow-Map konfiguriert werden. Allerdings verursachen ihre Schatten zusätzliche Kosten, da Shadow-Maps pro Licht erstellt werden müssen. Die BVH (Raytracing-Szene) wird hingegen einmal für alle Lichter in der Szene erzeugt.
Die Strahlführung in MegaLights ist nützlich für die Auswahl wichtiger Lichtquellen und ist entscheidend, um mehr Samples an Lichter zu senden, die wahrscheinlich Einfluss auf ein bestimmtes Pixel haben. Die Strahlführung sendet wiederum weniger Samples zu Lichtern, die weniger Einfluss haben sollen (zum Beispiel solche, die wahrscheinlich okkludiert werden). Dies ist ein wichtiger Teil der Technik, da er es ermöglicht, aus dem festen Licht-Sample-Budget pro Pixel die beste Beleuchtungsqualität zu extrahieren. Die Strahlführung verringert zwar die Anzahl der Strahlen, die an okkludierte Lichtquellen gesendet werden, muss aber trotzdem in regelmäßigen Abständen ein Sampling für diese durchführen, um zu prüfen, ob sie im aktuellen Frame sichtbar wurden. Vermeide es daher, Lichtquellen mit großen Grenzen zu platzieren, die sich auf die gesamte Szene auswirken.
Schließlich durchläuft die gesamte akkumulierte Beleuchtung einen Denoiser, der versucht, hochwertige direkte Beleuchtung aus dem stochastischen und möglicherweise verrauschten Input zu rekonstruieren. Wenn die Beleuchtungskomplexität in der Szene zunimmt, muss der Denoiser mehr arbeiten, um dies zu berücksichtigen. Eine erhöhte Komplexität der Beleuchtung kann zu unscharfer Beleuchtung oder Geisterbildern führen, was du vermeiden kannst, indem du kleinere Lichtquellen zu großen Bereichslichtern zusammenführst und die Grenzen der Lichtquellen sorgfältig einengst, um die endgültige Beleuchtungsqualität zu verbessern.
Beleuchtungskomplexität
Es gibt eine Beschränkung, wie viele wichtige Lichter sich auf ein einzelnes Pixel auswirken können, bevor es sich stark auf den Denoiser verlassen muss, da es ein festes Budget und eine feste Anzahl Samples pro Pixel gibt, was dazu führen kann, dass der Denoiser unscharfe Beleuchtung und schließlich Rauschen oder Geisterbilder in der Szene verursachen. Es bleibt weiterhin wichtig, die Lichtplatzierung zu optimieren, indem du den Lichtabschwächungsbereich verringerst und Lichtquellen-Cluster durch ein einziges Bereichslicht ersetzt.
Damit MegaLights innerhalb einer Szene problemlos funktioniert, ist es am besten, keine Lichter innerhalb der Szenengeometrie zu platzieren und die Grenzen des Lichts zu optimieren. Du kannst den Konsolenbefehl r.MegaLights.Debug 1 nutzen, um zu visualisieren, wo Strahlen von einem ausgewählten Pixel gesendet werden. Du kannst einen ausgewählten Strahl mit dem Konsolenbefehl r.ShaderPrint.Lock 1 einfrieren, was es dir erlaubt, durch die Szene zu fliegen, um verfolgte Strahlen zu untersuchen.
Im Laufe der Entwicklung von MegaLights zur produktionsbereiten Funktion von Unreal Engine werden weitere Visualisierungswerkzeuge verfügbar gemacht.
Im folgenden Beispiel befindet sich ein Teil des texturierten rechteckigen Lichts in der Wand und muss von MegaLights abgetastet werden, auch wenn er nie sichtbar ist. Das sieht man in der Visualisierung, die zeigt, wie einige der Strahlen in der Wand verfolgt werden. Idealerweise sollten die Quellenbreite und Quellenhöhe von texturiertem rechteckigem Licht verringert werden, damit die Lichtquellen diesen Bogen ausfüllen, aber nicht darüber hinausgehen.
Um Rauschen zu minimieren, solltest du Lichter nicht innerhalb der Geometrie platzieren, sowie den Lichtabschwächungsbereich, die Kegel der Spotlights und die rechteckigen Licht-Barndoors optimieren, um den Einfluss des Lichts einzuschränken.
Raytracing-Szene
Standardmäßig verwendet MegaLights Raytracing und die Schattenqualität hängt von der Qualität der Raytracing-Szene ab. Aus Performance-Gründen wird die Raytracing-Szene unter Verwendung automatisch vereinfachter Nanite-Meshs erstellt und verwendet aggressivere Ausblendeinstellungen als die Hauptansicht. Das kann zu Schattenartefakten, Lecks oder fehlenden Schatten führen.
Die Visualisierungen von Raytracing-Szenen sind ein guter Ausgangspunkt für die Untersuchung von Schattenwurfproblemen. Sie zeigen die tatsächliche Szenendarstellung, gegen die MegaLights Raytracing vornimmt. Du kannst die Raytracing-Szene auf folgende Weise visualisieren:
Einer der Ansichtsmodi für das Raytracing-Debugging, der sich im Level-Viewport unter dem Menü „Ansichtsmodi“ befindet. Raytracing-Debug-Anzeigemodi sind auch über Konsolenbefehle verfügbar:
show RayTracingDebug 1undr.RayTracing.DebugVisualizationMode = "World Normal".Der Ansichtsmodus Lumen-Übersicht ermöglicht eine Bild-in-Bild-Visualisierung, bei der sowohl die Raytracing-Szene als auch die Hauptansicht gleichzeitig zu sehen sind. Der Ansichtsmodus Lumen-Übersicht ist auch über den Konsolenbefehl
r.Lumen.Visualize 1verfügbar.
Sollten Schatten fehlen oder mit zunehmender Distanz verschwinden, kann das an dem Ausblenden der Raytracing-Szene liegen. Du kannst das Ausblenden anpassen, indem du die Konsolenbefehle unter r.RayTracing.Culling.* verwendest. Du solltest dir die Variablen für den Ausblenden-Modus, Radius und Festwinkel ansehen.
Zu Ausblendzwecken kannst du kleinere Objekte mithilfe der Raytracing-Gruppen-ID zusammenführen, sodass sie mithilfe ihrer zusammengeführten Grenzen ausgeblendet werden.
Weitere Informationen zur Ausblenden-Steuerung für Raytracing-Szenen findest du in der Anleitung zur Raytracing-Performance.
Die Raytracing-Szene basiert auf automatisch vereinfachten Nanite-Fallback-Meshs. Standardeinstellungen können manchmal dazu führen, dass Fallback-Meshs eine zu niedrige Qualität für die Beschattung aufweisen und eine manuelle Anpassung erfordern. Führe folgende Schritte aus, um dies zu tun:
Öffne das Mesh im Statisches-Mesh-Editor.
Lege im Detailfenster unter Nanite-Einstellung die Fallback-Zielvorgabe auf Relativer Fehler fest.
Darauf zeigt sich eine neue Einstellung mit der Bezeichnung Fallback Relativer Fehler, deren Wert du festlegen kannst. Eine Verringerung des Werts erhöht die Dreieckanzahl und die Wiedergabetreue des Nanite-Fallback-Mesh.
Klicke anschließend auf Änderungen übernehmen, um das Nanite-Fallback-Mesh neu zu erstellen.
Weitere Informationen zum Einrichten von Nanite-Fallback-Meshs findest du unter Virtualisierte Geometrie mit Nanite.
Die Dreieckanzahl des Nanite-Fallback-Mesh und die Anzahl der in der Raytracing-Szene enthaltenen Instanzen wirken sich auf die Erstellungszeiten von Raytracing-BVH, den verwendeten Speicher und die Raytracing-Performance aus. Wir empfehlen, sie entsprechend der verfügbaren Performance und dem Speicherbudget deines Projekts vorsichtig zu erhöhen.
Für Nicht-Echtzeit-Rendering ist es auch möglich, r.RayTracing.Nanite.Mode 1 zu verwenden, das die Raytracing-Szene aus Nanite-Meshs mit vollen Details erstellt. Das hat große Performance- und Speicherkosten und kann zu Problemen mit der Szene oder Kameraanimation führen, wenn sich der Nanite-LOD-Schnitt ändert oder sein BVH neu erstellt werden muss.
Bildschirmbereich-Traces
MegaLights benutzt die Raytracing-Szene beim Werfen von Schatten für größere Geometriedetails, nutzt aber Bildschirmbereich-Traces für kleinere Geometrien, die in der vereinfachten Raytracing-Szene fehlen könnten. Bildschirmbereich-Traces verwenden Szenetiefe und treffen alles, was auf dem Bildschirm sichtbar ist. Das kann bei bestimmten Anpassungen der künstlerischen Ausrichtung zu Problemen führen, etwa bei unsichtbaren Schattenwerfern, die sich nicht auf die Szenentiefe auswirken und nur in der Raytracing-Szene existieren.
Für Traces, die über die Abdeckung der Raytracing-Szene hinausgehen (oder wenn die Fernfeld-Darstellung zu grob ist), unterstützt MegaLights entfernte Bildschirm-Traces. Die Länge der entfernten Bildschirm-Traces wird mittels r.MegaLights.DistantScreenTraces.Length als Prozentsatz des Bildschirms definiert.
Schattenwurfmethoden
MegaLights bietet zwei Schattenwurfmethoden, die für jedes Licht über die Eigenschaften der Lichtkomponente ausgewählt werden können:
Raytracing ist die standardmäßige und empfohlene Methode. Es verursacht keine zusätzlichen Kosten pro Licht und kann korrekte Bereichsschatten erzielen. Der Nachteil ist, dass die Qualität der Schatten von der vereinfachten Raytracing-Szene abhängt.
Virtuelle Shadow-Maps verfolgen Strahlen gegen eine virtuelle Shadow-Map. Virtuelle Shadow-Maps werden pro Licht mittels Rasterisierung generiert und können vollständige Nanite-Mesh-Details erfassen. Der Nachteil ist, dass sie Bereichsschatten nur annähern können und erhebliche Kosten pro Licht in Bezug auf Speicher-, CPU- und GPU-Overhead haben können, die für die Erzeugung von Schattentiefen verwendet werden. Dies sollte sparsam verwendet werden.
Standardmäßig sollten alle Lichter, insbesondere großflächige Bereichslichtquellen mit weicheren Schatten oder weniger wichtige Lichter, Raytracing verwenden, da weichere Lichter keinen präzisen Schattenwurf benötigen. Es lohnt sich auch, etwas mehr Budget für die Raytracing-Szene aufzuwenden, da eine hochwertigere Raytracing-Darstellung es ermöglicht, dass mehr Lichter den günstigeren Raytracing-Pfad durchlaufen.
Lichtfunktionen
Licht-Funktionen werden unterstützt, solange sie mit dem Lichtfunktionsatlas kompatibel sind und der Lichtfunktionsatlas in den Einstellungen aktiviert wurde.
Alpha-Maskierung
Standardmäßig können nur Bildschirmraum-Traces alpha-maskierte Flächen korrekt verarbeiten. Die Alpha-Masken-Unterstützung für Raytracing kann mit dem Konsolenbefehl r.MegaLights.HardwareRayTracing.EvaluateMaterialMode 1 aktiviert werden. Die Aktivierung dieser Option hat einen nicht unerheblichem Performance-Overhead. Daher ist es am besten, die Alpha-Maskierung in Inhalten zu vermeiden.
Direktionales Licht
Standardmäßig ist direktionales Licht deaktiviert und muss manuell mit r.MegaLights.DirectionalLights 1 aktiviert werden. Dies liegt an verschiedenen Einschränkungen, weshalb es sich mehr für gedämpftes und weiches direktionales Licht wie Mondlicht als für hochwertige, scharfe Sonnenschatten eignet, die sich bis zum Horizont ziehen.
Die Qualität der Schatten von direktionalem Licht hängt stark von der Raytracing-Darstellung in der Ferne ab, was aufgrund des BVH-Builds und des Durchlauf-Overhead schwierig sein kann. Einige dieser Probleme können durch die Aktivierung des Fernfelds ausgeblendet werden.
Starkes direktional Licht kann außerdem Rauschen in Innenbereichen erzeugen, indem einige Samples auf unsichtbares direktionales Licht umgeleitet werden, das nicht zu den endgültigen Pixeln beiträgt. Dieses Problem kann umgangen werden, indem Nachbearbeitungsvolumen platziert werden, die direktionales Licht in Innenbereichen dimmen oder sogar ganz deaktivieren können.
Fernfeld
MegaLights implementiert Fernfeld-Traces, die es erlauben, den Bereich von Schattenstrahlen über den TLAS-Ausblendungsbereich hinaus mit relativ geringem Overhead zu erweitern, indem Traces gegen sehr vereinfachte und zusammengeführte HLOD1-Meshs durchgeführt werden.
Fernfeld-Traces werden über die Konsolenvariable r.MegaLights.HardwareRayTracing.FarField in der Konfigurationsdatei „DefaultEngine.ini“ aktiviert und erfordern den Einsatz des hierarchischen Detaillierungsgrads (HLOD) von Welt Partition. Fernfeld erfordert für den Build die Verwendung von HLOD1.
Beleuchtete Transluzenz und volumetrischer Nebel
MegaLights lässt sich in das Transluzenz-Beleuchtungsvolumen und den volumetrischen Nebel integrieren, um die Beleuchtung und den Schattenwurf auf diesen Volumen stochastisch zu bewerten.
Der Schattenwurf wird unter Verwendung eines einheitlichen Froxel-Volumens berechnet, dessen Auflösung durch r.MegaLights.Volume.GridPixelSize und r.MegaLights.Volume.GridSizeZ definiert wird. Die Abdeckung des Volumens wird automatisch basierend auf r.TranslucencyLightingVolume.OuterDistance und des Ansichtsabstands der aktiven Komponente für exponentiellen Höhennebel erweitert.
Änderungen an diesen Einstellungen wirken sich auf die Schattierung von beleuchteter Transluzenz und volumetrischem Nebel aus.
Vorwärtsschattierung
Vorwärtsschattierung wird aktuell mit demselben Volumen berechnet, das für beleuchtete Transluzenz verwendet wird. Insbesondere wird spiegelnde Beleuchtung angenähert, indem ein einziges Licht aus sphärisch-harmonischen Elementen extrahiert wird, das die Beleuchtung um die Fläche annähert.
Partikel-Lichter
MegaLights unterstützt Partikellichter, aber nur solche, die derzeit von Niagara-Systemen gespawnt werden. Sie können auch Schatten werfen, wenn sie von MegaLights verarbeitet werden.
Standardmäßig werden Partikellichter von MegaLights nur dann verarbeitet, wenn Nutzer dies explizit in Assets aktivieren. Dieses Verhalten kann mit der Konsolenvariable r.MegaLights.SimpleLightMode geändert werden. Bei der Einstellung auf 2 verarbeitet MegaLights alle Partikellichter (der Schattenwurf muss weiterhin für jedes Asset aktiviert werden). Bei der Einstellung 0 werden Partikellichter von MegaLights deaktiviert.
So aktivierst du MegaLights für einen Niagara-Emitter:
Wähle das Modul Licht-Renderer unter dem Emitter aus.
Aktiviere im Details-Panel die Optionen MegaLights zulassen und MegaLights wirft Schatten.
Durch die Aktivierung der zweiten Einstellung werfen die Partikellichter Schatten.
Mit der ersten Einstellung werden MegaLights für die gespawnten Lichter aktiviert.
Da ein Emitter sehr viele Lichter spawnen kann, muss darauf geachtet werden, dass sich nicht zu viele starke Lichter gleichzeitig auf ein Bildschirmpixel auswirken. Andernfalls kann die Qualität merklich sinken. Wir empfehlen, die Lichter klein und spärlich im Raum zu platzieren und den Schattenwurf nur auf wenigen Partikellichtern zu aktivieren.
Skalierbarkeit
Dies sind die primären Bedienelemente für die Skalierbarkeit von MegaLights:
r.MegaLights.DownsampleModesteuert den Komprimierungsfaktor für Sampling und Tracing.r.MegaLights.NumSamplesPerPixelsteuert, wie viele Samples und Traces pro Pixel durchgeführt werden.
Die Skalierung der Beleuchtungsqualität auf High-End-PCs und das Offline-Rendering befinden sich noch in Entwicklung. Allerdings kannst du versuchen, die Befehle r.MegaLights.DownsampleMode 0 und r.MegaLights.NumSamplesPerPixel 16 zu verwenden, um die beste Qualität zu erreichen.
Für die Skalierbarkeit der Beleuchtung für volumetrischen Nebel und Haarsträhnen kannst du die Konsolenvariablen unter r.megalights.volume.* verwenden, um die Beleuchtung anzupassen.
MegaLights bietet noch keine dedizierte Unterstützung für die Film-Rendering-Warteschlange, aber gute Ergebnisse lassen sich erzielen, wenn du entweder die temporale Superauflösung (TSR) als Anti-Aliasing Methode verwendest oder die temporale Sample-Anzahl auf etwa 8 einstellst, wodurch die Beleuchtung korrekt aufgelöst wird.
Performance
Beim Performance-Vergleich ist es wichtig zu verstehen, dass MegaLights sämtliche direkte Beleuchtung auflöst und eine Reihe von Durchläufen des aufgeschobenen Renderers ersetzt, darunter:
Schattentiefe: Bei Verwendung von Shadow-Maps oder virtuellen Shadow-Maps
RenderDeferredLighting::Lights
InjectTranslucencyLightingVolume
VolumetricFog::Shadowed Lights
Entfernt die Lichtbewertung aus VolumetricFog::LightScattering
Faktoren, die sich auf die Performance auswirken:
Die Performance hängt hauptsächlich von der internen Rendering-Auflösung ab.
Raytracing ist der zweitwichtigste Aspekt bei den MegaLights-Kosten. Die Kosten hängen von verschiedenen Faktoren ab: der Anzahl der Instanzen in der Raytracing-Szene, ihrer Komplexität, der Anzahl überlappender Instanzen sowie der Anzahl der dynamischen Dreiecke, die in jedem Frame aktualisiert werden müssen. Detaillierte Informationen zur Optimierung der Raytracing-Szene findest du in der Anleitung zur Raytracing-Performance.
Es entsteht zusätzlicher Speicher-, CPU- und GPU-Overhead für die Generierung von Shadow-Map-Tiefen pro Licht, die virtuelle Shadow-Maps für den Schattenwurf anstelle von Raytracing nutzt.
Es fallen geringe Kosten für Pixel auf dem Bildschirm mit komplexen BRDFs an und die von starken Lichtarten beeinflusst werden (texturierte rechteckige Lichter).
Die MegaLights-Kosten sind meist konstant und es gibt keinen großen Unterschied zwischen Lichtern ohne und mit Schatten. So können für alle Lichter der Szene Schatten aktiviert werden.
Idealerweise sollte MegaLights mit Lumen HWRT verwendet werden, da es die Aufteilung des Overhead der Raytracing-Szene und Optimierungen zwischen beiden Systemen ermöglicht.
GPU-Statistik zeigt eine Übersicht über die GPU-Zeitsteuerung, einschließlich des MegaLights-Durchlaufs. Detaillierte Zeitsteuerungen können mit der integrierten ProfileGPU oder Profilern von Drittanbietern erreicht werden.
Unreal Engine verwendet Async Compute, um mehrere Dispatches aus verschiedenen Funktionen zu überlappen. GPU-Statistik und ProfileGPU-Zeitsteuerungen sind verzerrt, bis du Async Compute mit dem Konsolenbefehl r.RDG.AsyncCompute 0 deaktivierst.
Obwohl MegaLights vollständig von der GPU gesteuert wird, fallen immer noch gewisse CPU-Kosten pro Licht an. Wenn sämtliche Lichter MegaLights mit Raytracing sind, lässt sich ein Großteil der CPU-Kosten pro Licht mit dem Konsolenbefehl r.Visibility.LocalLightPrimitiveInteraction 0 eliminieren.
Einschränkungen
Allgemeine Einschränkungen:
MegaLights ist nicht mit dem Vorwärtsrenderer kompatibel.
Aktuelle Einschränkungen, die wir verbessern wollen:
Es gibt einen Legacy-CPU-Overhead pro Licht für die Verfolgung von Grundkörperinteraktionen, die für MegaLights nicht benötigt werden.
Direktionale Licht-Wolkenschatten werden nicht unterstützt.
Die Dickenschätzung von Subsurface Scattering wird nicht unterstützt.
Wasser, Wolken, heterogene Volumen und lokale Volumetriken werden nicht unterstützt.
Plattformunterstützung
MegaLights wurden für Konsolen der aktuellen Generation (wie PlayStation 5, Xbox Series X | S) und PCs mit Raytracing-Funktionen entwickelt.
MegaLights unterstützen keine Mobilgeräte, Switch oder Konsolen der vorherigen Generation (wie PlayStation 4 und Xbox One).