Heim > Technologie-Peripheriegeräte > KI > Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

WBOY
Freigeben: 2023-04-08 22:21:09
nach vorne
1526 Leute haben es durchsucht

Globale Beleuchtung in Echtzeit (Echtzeit-GI) war schon immer der heilige Gral der Computergrafik.

Im Laufe der Jahre hat die Industrie auch verschiedene Methoden vorgeschlagen, um dieses Problem zu lösen.

Häufig verwendete Methodenpakete schränken den Problembereich ein, indem sie bestimmte Annahmen verwenden, wie z. B. statische Geometrie, grobe Szenendarstellung oder Verfolgung grober Sonden und die Interpolation der Beleuchtung zwischen beiden.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

In Unreal Engine wurde das globale Beleuchtungs- und Reflexionssystem Lumen Technology von Krzysztof Narkowicz und Daniel Wright gegründet.

Das Ziel besteht darin, eine Lösung zu entwickeln, die sich von den bisherigen unterscheidet und in der Lage ist, eine einheitliche Beleuchtung und eine backähnliche Beleuchtungsqualität zu erreichen.

Kürzlich sprachen Krzysztof Narkowicz und das Team auf der SIGGRAPH 2022 über ihre Reise beim Aufbau der Lumen-Technologie.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Software-Raytracing – Höhenfeld

Dem aktuellen Hardware-Raytracing mangelt es an leistungsstarker GPU-Rechenleistungsunterstützung. Wir wissen nicht, wie schnell Hardware-Raytracing sein wird oder ob Konsolen der neuen Generation es unterstützen werden.

Daher kommt das Software-Raytracing-Verfahren zum Einsatz. Es erweist sich als wirklich nützliches Werkzeug zum Skalieren oder Unterstützen von Szenen mit vielen überlappenden Instanzen.

Software-Raytracing bietet die Möglichkeit, eine Vielzahl von Tracking-Strukturen zu verwenden, wie zum Beispiel Dreiecke, Distanzfelder, Surfels oder Höhenfelder.

Hier gibt Krzysztof Narkowicz das Studium von Dreiecken auf und untersucht kurz Surfel, aber für die Geometrien, deren Darstellung eine ziemlich hohe Dichte erfordert, ist es ziemlich teuer, sie zu aktualisieren oder den Überblick über Surfel zu behalten.

Nach der ersten Erkundung waren Höhenfelder am besten geeignet, da sie sich gut in die Hardware einfügen und eine Oberflächendarstellung sowie einfache kontinuierliche LODs ermöglichen.

Da wir alle POM-Algorithmen wie Min-Max-Quadtree verwenden können, ist die Tracking-Geschwindigkeit sehr hoch.

Darüber hinaus können mehrere Höhenfelder komplexe Geometrien darstellen, ähnlich wie gerasterte Begrenzungsvolumenhierarchien.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Es ist auch sehr interessant, es sich als Beschleunigungsstruktur von Surfels vorzustellen. Ein einzelnes Texel ist ein Surfel, das durch ein regelmäßiges Gitter eingeschränkt wird.

Lumen verfügt neben dem Höhenfeld auch über weitere Eigenschaften, wie Albedo oder Beleuchtung, sodass die Beleuchtung jedes Mal berechnet werden kann.

In Lumen hat der Entwickler diese vollständige Aufkleberprojektion mit Oberflächendatenkarten benannt, was der Erfassungsposition entspricht.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Rasterisierte Dreiecke

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Raymarched-Karten (Höhenfeld)

Führen Sie für jede Karte in der Szene Strahlen aus. Der Schritt ist zu langsam. Daher ist eine Kartenbeschleunigungsstruktur erforderlich, und die Entwickler haben sich für einen BVH mit 4 Knoten entschieden. Es ist für eine komplette Szene konzipiert, wobei jedes Bild auf der CPU gespeichert und auf die GPU hochgeladen wird.

Dann führen wir im Trace-Shader eine stapelbasierte Durchquerung durch und ordnen die Knoten dynamisch an, sodass die nächstgelegenen Knoten zuerst durchlaufen werden.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

BVH-Debug-Ansicht

Position erfassen

Der schwierigste Teil hier ist, wie man das Höhenfeld so platziert, dass es das gesamte Netz erfasst. Krzysztof Narkowicz sagte: „Eine der Ideen ist ein globales Distanzfeld basierend auf der GPU. In jedem Frame verfolgen wir einen kleinen Satz Primärstrahlen, um Strahlen zu finden, die nicht von der Karte abgedeckt werden.

Als nächstes für jeden unentdeckten Strahl , Wir werden den Oberflächengradienten verwenden, um das globale Distanzfeld zu durchqueren, um eine optimale Kartenausrichtung und -reichweite zu bestimmen, was zu einer neuen Karte führt Einerseits hat es sich bewährt, Karten für die gesamte zusammengeführte Szene zu generieren, anstatt Karten für jedes Netz generieren zu müssen. Andererseits erwies es sich in der Praxis als ziemlich knifflig, da es bei jeder Bewegung der Kamera unterschiedliche Ergebnisse lieferte. Eine andere Idee besteht darin, die Karten jedes Netzes als Netz zu importieren, indem Sie ein geometrisches BVH erstellen, bei dem jeder Knoten wie folgt in N Karten umgewandelt wird:

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Rasterisierte Dreiecke „Ray Step Card (High Field)“ zum Platzieren von Karten

Dann kamen die Forscher auf eine andere Idee: Folgen Sie der UV-Entfaltungstechnik und versuchen Sie, die Oberflächenelemente zu gruppieren

Da es sich um Millionen von Polygonen handelte, die von Nanite bereitgestellt wurden, tauschten sie Dreiecke gegen Surfel

Gleichzeitig wechselten sie auch zu einer weniger eingeschränkten kostenlosen Führungskarte, um zu versuchen, die Positionen der freien Karte besser anzupassen.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Diese Methode hat großartig funktioniert für einfache Formen, hatte jedoch Probleme mit der Konvergenz zu komplexeren Formen Schließlich wechselte Narkowicz wieder zu achsenausgerichteten Karten, dieses Mal jedoch generiert aus Bin-Clustern und pro Mesh

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem LumenCone Tracking

Die einzigartigen Eigenschaften von Tracking-Höhenfelder ermöglichen auch die Kegelverfolgung . Kegelverfolgung

Für jede Karte hinterlegen die Entwickler außerdem eine komplette vorgefilterte Mip-Map-Kette mit Oberflächenhöhe, Beleuchtung und Materialeigenschaften.

Wählen Sie beim Tracing den geeigneten Schrittstrahl basierend auf der Kegelgrundfläche aus und führen Sie das Raytracing darauf durch.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Verfolgung mit und ohne festsitzende Kanten

Szenendarstellung zusammenführen

Die Verfolgung einer großen Anzahl inkohärenter Strahlen in der Software ist sehr langsam. Idealerweise würde eine einzelne globale Struktur anstelle mehrerer Höhenfelder verwendet.

Wenn die Kegelgrundfläche immer größer wird, ist eine genaue Szenendarstellung eigentlich nicht erforderlich und kann für schnellere Geschwindigkeiten durch eine näherungsweisere Darstellung ersetzt werden.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Eine komplexere Szene mit Dutzenden von Karten, um jeden Strahl zu verfolgen

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Der erste erfolgreiche Ansatz bestand darin, reines Voxel-Kegel-Tracking zu implementieren, und die gesamte Szene zur Laufzeit wurde voxelisiert, wie im implementiert klassischer Artikel „Interaktive indirekte Beleuchtung mit Voxel-Kegelverfolgung“.

... Kegelverfolgung Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Der Strahlschritt Karte fährt mit Voxel-Kegelverfolgung fortSuper realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Der Hauptnachteil dieser Methode besteht darin, dass sie aufgrund übermäßiger Vermischung der Szenengeometrie zu Leckagen führt, was sich besonders beim Verfolgen dicker, niedriger Karten bemerkbar macht.

Die erste Technik zur Reduzierung von Bildlecks besteht darin, das globale Distanzfeld zu verfolgen und nur Voxel in der Nähe der Oberfläche abzutasten. Während des Sampling-Vorgangs nimmt die Opazität zu, wenn der Sampling-Bereich erweitert wird, und wenn die Verfolgung gestoppt wird, erreicht die Opazität 1. Dadurch wird immer eine genaue Abtastung in der Nähe der Geometrie durchgeführt, um Grafiklecks zu reduzieren. Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Die zweite Technik besteht darin, das Innere des Netzes zu voxelisieren. Dies reduziert die Leckage an dickeren Wänden erheblich, obwohl dies auch zu einer übermäßigen Okklusion führen kann.

Andere Experimente umfassen die Verfolgung spärlicher Voxel-Bit-Patches und Voxel pro Gesichtstransparenzkanal. Der Zweck beider Experimente besteht darin, das Problem der Voxelinterpolation der Strahlrichtung zu lösen, d. h. eine achsenausgerichtete feste Wand wird für Strahlen transparent, die nicht senkrecht zur Wand verlaufen.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Voxel-Bit-Kacheln speichern ein Bit pro Voxel in einer 8x8x8-Kachel, um anzuzeigen, ob ein bestimmtes Voxel leer ist. Für das Ray-Stepping wird dann ein zweistufiger DDA-Algorithmus verwendet. Voxel mit transparenten Oberflächen sind ähnlich, haben aber den gleichen DDA, mit zunehmender Transparenz entlang der Strahlrichtung. Es stellt sich heraus, dass beide Methoden die Geometrie nicht so gut darstellen wie die Distanzdomäne und recht langsam sind.

Voxel mit Transparenz

Die früheste Möglichkeit, zusammengeführte Darstellungen zu verfolgen, war die Kegelverfolgung eines globalen Distanzfeldes und die Schattierung von Treffern mithilfe globaler Karten pro Szene. Das heißt, durchlaufen Sie einen BVH, finden Sie heraus, welche Karten in der Szene die Abtastpunkte beeinflussen, und prüfen Sie dann den moderaten Gleitgrad jeder Karte basierend auf dem konischen Fußabdruck.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem LumenSuper realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

In diesem Artikel wurde diese Methode aufgegeben, da sie nicht nur als Darstellung der Fernfeld-Flugbahn angesehen wurde, sondern als direkter Ersatz für das Hochfeld-Lichtschrittverfahren. Ironischerweise kam dieser aufgegebene Ansatz der Lösung, zu der wir schließlich zwei Jahre später gelangten, am nächsten.

Erste Demo

Zu diesem Zeitpunkt können wir bereits einige ziemlich gute Ergebnisse erzielen:

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Dennoch sind wir auf viele Probleme mit Grafiklecks gestoßen, und in dieser einfachen Szene sogar auf einem High-End-PC-GPU, die Leistung ist nicht sehr gut.

Um Leckprobleme zu beheben, um mehr Instanzen zu verarbeiten und die Verarbeitung auf PS5 in weniger als 8 ms abzuschließen. Diese Demo war ein echter Katalysator.

Im Vergleich zu früheren Lösungen besteht die erste und größte Änderung darin, die Höhenfeldverfolgung durch die Entfernungsfeldverfolgung zu ersetzen.

Um den Lebenspunkt zu maskieren, fügen Sie den Strahl des Lebenspunkts von der Karte ein, da das Distanzfeld keine Scheitelpunkteigenschaften hat. Auf diese Weise verursacht der unbedeckte Bereich nur Energieverlust und keine Leckage.

Aus dem gleichen Grund wurde die Voxel-Kegelverfolgung in globale Distanzfeld-Raytracing geändert.

Gleichzeitig haben wir auch viele verschiedene Optimierungen vorgenommen und verschiedene Teile von Lumen durch Caching-Lösungen zeitweise ausgelagert. Es ist erwähnenswert, dass wir ohne Kegelverfolgung das Tracking aggressiver entrauschen und zwischenspeichern müssen, aber auch das ist eine lange und komplizierte Geschichte.

Dies ist das Endergebnis, nachdem wir die erste Demo gesendet haben, die auf PS5 durchweg unter 8 ms lag, einschließlich Aktualisierungen aller gemeinsam genutzten Datenstrukturen wie dem globalen Distanzfeld. Die aktuelle Leistung ist beispielsweise noch besser, die Fertigstellungszeit der neuesten Demo liegt bei knapp 4 Millisekunden und auch die Qualität wurde deutlich verbessert.

Super realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen

Epilog

Kurz gesagt, dieser Artikel ist eine komplette Neufassung des gesamten Lumen, und es gibt viele verschiedene Ideen, die nicht umgesetzt wurden. Andererseits werden manche Dinge zweckentfremdet. Genau wie ursprünglich haben wir Karten als Tracking-Darstellung verwendet, aber jetzt werden sie als Möglichkeit verwendet, verschiedene Berechnungen auf der Oberfläche des Netzes zwischenzuspeichern. Ähnlich wie Software-Tracking war es zunächst unsere Haupt-Tracking-Methode, hauptsächlich Kegel-Tracking, wurde aber letztendlich zu einer Möglichkeit, komplexe Szenen mit vielen überlappenden Instanzen zu verkleinern und zu unterstützen.

Das obige ist der detaillierte Inhalt vonSuper realistische Darstellung! Der Technologieexperte von Unreal Engine erklärt das globale Beleuchtungssystem Lumen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage