Die volumetrische Wolkenkomponente ist ein physikalisch basiertes Wolkenrendering-System, das einen materialgesteuerten Ansatz verwendet, um Künstlern und Designern die Freiheit zu geben, jede Art von Wolken zu erstellen, die sie für ihre Projekte benötigen. Das Wolkensystem verarbeitet dynamische Tageszeit-Setups, die durch die [Himmelsatmosphäre] (building-virtual-worlds\lighting-and-shadows\environmental-lighting\sky-atmosphere) und [Himmelslicht] (building-virtual-worlds\lighting-and-shadows\light-types-and-mobility\SkyLight) im Echtzeit-Erfassungsmodus ergänzt werden. Das System bietet skalierbare, vom Künstler definierte Wolken, die sich an Projekte mit Bodenansichten, Flügen und Übergängen zwischen Boden und Weltraum anpassen lassen.
Wie werden Wolken gerendert?
Bisher wurden Wolken in Echtzeit für Spiele und Kinofilme in erster Linie mit statischen Materialien gerendert, die auf ein Himmelskuppel-Mesh oder einen ähnlichen Ansatz angewendet wurden. Das volumetrische Wolkensystem verwendet nun eine dreidimensionale Volumentextur, die mit Hilfe von Strahlenmustern Wolkenschichten in Echtzeit darstellt. Der materialbasierte Ansatz bietet Künstlern und Designern die größte Flexibilität, um Wolken zu entwerfen, die sich über den Himmel bewegen können, und zwar in jeder Form und zu verschiedenen Tageszeiten.
In den folgenden Abschnitten werden die Elemente des Wolkensystems untersucht und aufgeschlüsselt, die zum Rendering für Echtzeit-Rendering beitragen.
Ray-Marching des Wolkenvolumens
Die beteiligten Medien, aus denen sich die Wolken zusammensetzen, erfordern komplexe Beleuchtungssimulationen, die für Echtzeitsimulationen auf Consumer-Hardware entweder nicht möglich oder zu teuer sind. Das volumetrische Wolkensystem nutzt Ray-Marching und Annäherung, um das Wolkenrendering für eine skalierbare Echtzeitleistung auf vielen unterstützten Plattformen und Geräten zu simulieren. Dies ermöglicht Echtzeit-Tageszeitsimulationen, die den mehrfachen Lichtstreueffekt der Beleuchtung, die Abschattung durch Wolken und auf Wolken, den Lichtbeitrag vom Boden auf die untere Schicht der Wolken und vieles mehr unterstützen.
Licht-Mehrfachstreuung
Lichtstrahlen, die sich durch ein Volumen bewegen, können an Partikeln innerhalb des Volumens gestreut werden, bevor sie das Auge oder einen Kamerasensor erreichen. Dieser Effekt des Lichts wird als Mehrfachstreuung bezeichnet und macht das besondere Aussehen der Wolken aus. In einer Wolke führen die Tröpfchen, aus denen die Wolke besteht, in der Regel zu einer Albedo, die nahe dem Wert 1 liegt, was bedeutet, dass das Licht innerhalb des Volumens fast nie absorbiert wird. Licht, das nicht absorbiert wird, durchdringt das Volumen, wodurch der Streueffekt sehr komplex wird. Der Effekt der Mehrfachstreuung der beteiligten Medien beeinflusst die Lichtausbreitung durch das Wolkenvolumen; dadurch wirken sie hell und gleichzeitig sehr dicht.
Die Komplexität der Mehrfachstreuung beim Echtzeit-Rendering wird durch eine Annäherung an die realistische Streuung gelöst, indem mehrere Oktaven (oder Stufen) der Lichtdurchlässigkeit im Volumenmaterial verfolgt werden. Mit dem Ausdruck Volumetrische erweiterte Materialausgabe kannst du die Anzahl der verwendeten Oktaven zusammen mit dem Anteil der Mehrfachstreuung, der Okklusion und der auftretenden Exzentrizität festlegen.
Das folgende Beispiel zeigt den Unterschied zwischen keiner Oktave (einfache Streuung), einer Oktave und zwei Oktaven bei der Annäherung durch Mehrfachstreuung. Hohe Oktaven wenden zusätzliche Streuungsannäherungen auf dein Wolkenmaterial an, machen den Shader aber auch teurer.
Für Spieleprojekte wird empfohlen, aus Leistungsgründen nur eine einzige Oktave der Mehrfachstreuung von Licht zu verwenden. Du kannst jedoch hohe Contribution- und niedrige Okklusionswerte für den Ausdruck Volumetrisches erweitertes Material in deinem Wolkenmaterial verwenden, um einen ähnlichen Effekt zu erzielen, ohne die Leistung zu beeinträchtigen. Siehe den Abschnitt über volumetrisches Material weiter unten.
Bodenansicht:

Durch Ziehen des Schiebereglers kannst du die Anzahl der verwendeten Oktaven für die Mehrfachstreuungsannäherung von 0 bis 2 ändern.
Ansicht in größerer Höhe:

Durch Ziehen des Schiebereglers kannst du die Anzahl der verwendeten Oktaven für die Mehrfachstreuungsannäherung von 0 bis 2 ändern.
Wolkenokklusion und Schattenwurf
Ein wichtiger Aspekt der Wolken ist die Art und Weise, wie sie das Licht verdecken und Schatten auf Oberflächen werfen. Wolkenverdeckung und Schattenwurf werden in erster Linie durch Atmosphärenlichter und das Volumenmaterial, das zur Darstellung der Wolke verwendet wird, gesteuert. Diese Komponenten ermöglichen es dir, verschiedene Aspekte zu steuern, die das Aussehen deiner Wolken bestimmen, wie z. B. Sonnenlichtschächte oder Wolkenschatten.
Volumen-Ray-Marching und Shadow Maps
Für die Wolkenschattierung stehen zwei Modi zur Verfügung, die im verwendeten Wolkenmaterial umgeschaltet werden können: der Standardmodus Ray Marched und Beer Shadow Maps (BSM).


- Ray Marching des Volumenschattens verwendet sekundäres Ray Marching, um scharfe, farbige Schatten zu erhalten, ist aber aufgrund der begrenzten Anzahl von Samples, die verwendet werden können, in der Entfernung begrenzt, in der Schatten nachgezeichnet werden können. Ray-Marching-Schatten sind gut für Übergänge vom Boden zum Himmel und in den Weltraum, auch wenn sie teurer sind. Beer Shadow Maps verwenden Cascaded Shadow Maps, um weite Schattenabstände für Wolken und Schattenwurf auf dem Boden zu unterstützen. Sie lassen sich auch schneller rendern, sind aber weniger genau und haben keine volumetrische Eigenschattenfarbe. Für Wolken, die vom Boden aus betrachtet werden, sind Beer Shadow Maps in der Regel ausreichend.
Für Konsolenplattformen wie Xbox One und PlayStation 4 oder andere Systeme mit ähnlichen Spezifikationen, werden Beer Shadow Maps für Wolkenschattierung empfohlen.
Schalte zwischen diesen Modi innerhalb deines Wolken-Volumenmaterials um, indem du einen Ausdruck Volumetrische erweiterte Materialausgabe zu deinem Materialdiagramm hinzufügst. Aktiviere bei ausgewähltem Knoten das Kontrollkästchen Ray March Volumenschatten im Detail-Panel, um zwischen zwei Arten der Schattierung zu wechseln.
Wechselwirkungen mit gerichtetem Licht und Schattierung
Atmosphärenlichter, z. B. für Sonne und Mond, ermöglichen die Steuerung von Wolken und atmosphärischen Schatten. Damit kannst du die Stärke des Schattens, die Entfernung des Wolkenschattens von der aktuellen Kameraposition (in Kilometern) und die Möglichkeit, dass sich Wolken selbst beschatten und Schatten in die Atmosphäre werfen, steuern.
Die Aktivierung von Wolkenschatten werfen für ein atmosphärisches Licht ermöglicht es dem Wolkenvolumen, Szenenelemente zu beschatten und Sonnenlichtschächte (auch God Rays genannt) innerhalb der Atmosphäre zu werfen, wobei die Sonnenlichtschächte durch die Himmelsatmosphären-Komponente definiert werden.


Die Auflösungsskala der Cloud Shadow Map bestimmt die Auflösung und die Leistungskosten der Sonnenlichtschächte. Wenn du den Radius der Wolkenschattenkarte um die Kamera mit der Eigenschaft Wolkenschattenausmaß reduzierst, kannst du die Auflösung der Shadow Map fokussieren und so schärfere und bessere Ergebnisse erzielen.
Das Werfen von Schatten auf die Atmosphäre und Wolken von undurchsichtigen Objekten wird mit Schattenwurf auf Atmosphäre und Schattenwurf auf Wolken aktiviert. Der Schattenwurf für große Objekte wird durch eine ausreichend große Dynamische Schattenentfernung oder durch die Verwendung der Fernschattenentfernung für das gerichtete Licht erreicht, um Objekte zu beschatten, die in ihren Details das Kennzeichen Fernschatten aktivieren.
Die Simulation der Mehrfachstreuung von Licht in beteiligten Medien unter Verwendung der Oktavannäherung kann zu einem gewissen Energieverlust führen. Die Atmosphärenlichteigenschaft Luminanzskala für Wolkenstreuung bietet ein nützliches Gegengewicht, mit dem du den Lichtbeitrag mithilfe eines Farbwählers skalieren kannst, was eine interessantere und natürlichere Lichtstreuung ohne zusätzliche Kosten ermöglicht.
Dies sind einige Beispiele mit unterschiedlichen Luminanzskalen für die Wolkenstreuung.
Klicke auf das Bild für volle Größe.
Oberlichterfassung in Echtzeit
Die Oberlicht-Komponente bietet einen Echtzeit-Erfassungsmodus, der Interaktionen mit Atmosphäre, Wolken, Höhennebel und undurchsichtigen Meshes unter Verwendung eines unbeleuchteten Materials mit dem Tag „Himmel" verarbeitet. Dieser Modus ermöglicht es, natürlich wirkende und dynamische Tageszeitsimulationen zu erstellen, ohne dass die Leistung darunter leidet.
Weitere Informationen über den Echtzeit-Erfassungsmodus und andere Optimierungen findest du auf der Oberlicht-Seite.
Wolken-Umgebungsverdeckung bei Oberbeleuchtung
Weiche Umgebungsschatten sind ein wichtiger Bestandteil des natürlichen Aussehens von Wolken. Die Komponente [Oberlicht] (building-virtual-worlds\lighting-and-shadows\light-types-and-mobility\SkyLight) verwendet die Wolken-Umgebungsverdeckung-Eigenschaften, um zu steuern, wie viel Licht die Wolken aus den Himmels- und Atmosphärenlichtern blockieren können. Diese Eigenschaften findest du unter dem Abschnitt Atmosphäre und Wolken im Oberlicht Detail-Panel.
Der Vergleich unten zeigt die aktivierte Umgebungsabdeckung mit erhöhter Stärke, die steuert, wie viel Lichtanteil die Ober- und Atmospärenlichter haben, indem sie schrittweise die Menge der Mehrfachstreuung des Lichts reduziert, die passiert.


Der Beitrag von Oberlicht-AO zur Atmosphäre und zu den Wolken kann wie folgt beschrieben werden:
- Kosten der Schattenverfolgung:
- Bei Verwendung von sekundärem Marching pro Sample werden die Kosten durch die Werte bestimmt, die in der Komponente Volumetrische Wolke mit der Schattenansicht-Sample-Zählskala eingestellt wurden.
- Wenn die Wolke die Beer Shadow Map für gerichtetes Licht abtastet (die auch verwendet wird, um Schatten auf Meshes zu werfen), dann wird an jeder Ray-Marching-Position eine einzelne Auswertung der Shadow Map vorgenommen. Die Erzeugung der Beer Shadow Map wird durch Informationen gesteuert, die aus der Einstellung der Komponente für gerichtetes Licht mit Wolkenschatten Strahl Sample-Zählskala stammen.
Volumetrische Wolken einrichten und verwenden
Das volumetrische Wolkensystem ist ein zentraler Bestandteil der verfügbaren atmosphärischen Komponenten, aus denen der Himmel und die Atmosphäre des Planeten bestehen. Die folgenden Abschnitte helfen dir bei der Einrichtung und Nutzung dieser Komponenten zusammen mit dem Wolkensystem.
Anfängliche Einrichtung des Levels
Erstelle einen neuen Level (oder verwende einen bestehenden), der die folgenden Komponenten enthält:
- Ein gerichtetes Licht mit aktiviertem Atmosphärensonnenlicht, um die Sonne oder den Mond darzustellen.
- Eine Himmelsatmosphäre-Komponente zur Darstellung der Atmosphäre des Planeten.
- Ein Oberlicht mit Echtzeiterfassung, das optional aktiviert werden kann, wenn eine dynamische Tageszeitsimulation gewünscht wird.
- Eine Volumetrische Wolke-Komponente, der ein Volumenmaterial zugewiesen wurde, um die Wolken am Himmel darzustellen.
Mit dem Umgebungslichtmischer lässt sich die Erstellung und Bearbeitung von atmosphärischen Komponenten in deinem Level vereinfachen. Er bietet relevante Einstellungen für jede Komponente in einem einzigen Panel.
Weitere Informationen findest du unter Umgebungslichtmischer.
Oberlicht-Wolken-Reflexionsqualität
Die Komponente [Oberlicht] (building-virtual-worlds\lighting-and-shadows\light-types-and-mobility\SkyLight) bietet Szenenreflexionen für volumetrische Wolken. Mit der Komponente „Volumetrische Wolke" kannst du die Anzahl der Samples, die für die Ray-Marching-Reflexionsflächen in der Szene verwendet werden, im Detail-Panel unter dem Abschnitt Wolken-Tracing einstellen. Du kannst die Anzahl der Samples für die Reflexionen der Wolken und für die schattigen Reflexionen der Wolken skalieren.

Ziehe den Schieberegler, um zu sehen, wie die Anzahl der Samples, die beim Tracing der Reflexionsstrahlen der Wolke verwendet werden, schrittweise zunimmt: 0.25, 0.5, 0.75, 1 (Default), 2, 4, und 8.
Die Eigenschaften Reflexionsmuster-Zählskala und Schatten-Reflexionsmuster-Zählskala sind geklammert. Die folgenden Befehle können verwendet werden, um die Skalierung und die Anzahl der Samples zu erhöhen:
r.VolumetricCloud.ReflectionRaySampleMaxCountr.VolumetricCloud.Shadow.ReflectionRaySampleMaxCountr.VolumetricCloud.ViewRaySampleMaxCountr.VolumetricCloud.SampleMinCountr.VolumetricCloud.DistanceToSampleMaxCount
Unter [Oberlicht] (building-virtual-worlds\lighting-and-shadows\light-types-and-mobility\SkyLight) findest du weitere Informationen über den Echtzeit-Erfassungsmodus und die Eigenschaften der Reflexionsqualität.
Ray-Marching Qualitätsmodi
Das Wolkensystem bietet skalierbare Qualitätsmodi, die für viele Spieltypen geeignet sind, von Standard- bis hin zu rasantem Spiel, das Bewegungen vom Boden in den Weltraum erfordert. Es unterstützt auch die Kinoqualität von Projekten, bei denen es weniger darauf ankommt, in Echtzeit zu arbeiten.
Die Qualitätsmodi werden durch den Befehl r.VolumetricRenderTarget definiert:
- Reaktive Modi, die Wolkenüberschneidungen mit undurchsichtigen Oberflächen unterstützen, wobei die Spuren mit einer geringeren Auflösung vervollständigt werden: * r.VolumetricRenderTarget.Mode 0 ist die empfohlene Option für Qualität. Sie unterstützt ein rasantes Gameplay mit Übergängen vom Boden in den Weltraum oder mit Flügen durch Wolken. Das Tracing von Wolken ist schnell, diese können aber eine geringe Auflösung haben. Traces werden mit viertel Auflösung, Rekonstruktion mit halber Auflösung und Upsampling auf dem Bildschirm mit voller Auflösung durchgeführt. r.VolumetricRenderTarget.Mode 1 bietet ein ausgewogenes Verhältnis zwischen Qualität und Leistung für viele Spieltypen, die sich für Bodenansichten eignen. Dieser Modus ist teurer, sieht aber hochwertiger aus. Traces erfolgen mit halber Auflösung, Rekonstruktion und Upsampling auf dem Bildschirm mit voller Auflösung.
- Ein weniger reaktiver Modus, aber mit voller Auflösung: r.VolumetricRenderTarget.Mode 2 legt den Schwerpunkt auf höhere Qualität und unterstützt gleichzeitig Bodenansichten für Echtzeit-Gameplay. Dieser Modus ist schnell und bietet eine hohe Auflösung, unterstützt aber keine Wolkenüberschneidungen mit undurchsichtigen Meshes.
- Der Kinomodus wird erreicht, indem man mit r.VolumetricRenderTarget 0 beginnt und den Vorschlägen im Arbeitsablauf „Erreichen von Kinoqualität" folgt (siehe unten).
Die Qualität kann für die gewünschten Plattformen durch die Konsolenbefehle r.SkyAtmosphere. und r.VolumetricClouds. weiter verbessert bzw. verringert werden. Außerdem findest du benutzerseitige Eigenschaften im Volumenmaterial sowie in den Komponenten Volumetrische Wolke und Gerichtetes Licht.
Erreichen von Kinoqualität
Dabei handelt es sich um einen fortgeschrittenen Arbeitsablauf, der die von der Engine für das Echtzeit-Rendering von Wolken und Himmel verwendeten Optimierungen umgeht und die Leistung erheblich beeinträchtigen kann.
Das Erreichen von Kinoqualität (oder „Qualität pro Pixel") für die Komponenten „Himmelsatmosphäre" und „Volumetrische Wolken" erfolgt durch einige Befehle, das Einstellen von Attributen in deinem Wolkenmaterial und durch die Erhöhung der Anzahl von Samples, die zum Tracing der Atmosphäre und des Wolkenvolumens verwendet werden.


Die folgenden Schritte sind die wichtigsten Ausgangspunkte, um in deinem Projekt die höchste Qualität der Wolken und der Atmosphäre zu erreichen.
- Setze r.VolumetricRenderTarget auf 0, um erste Ergebnisse in Kinoqualität zu ermöglichen.
- Setze r.VolumetricCloud.HighQualityAerialPerspective auf 1, um die kinematografische Luftperspektive für Wolken zu aktivieren und hochqualitatives Raytracing anstelle von LUTs mit niedriger Auflösung zu verwenden.
- Stelle für die Komponente Volumetrische Wolke Folgendes ein:
- Erhöhe im Abschnitt Wolken-Tracing die Sample-Zählskala für Ansicht, Reflexionen und Schatten. Die Zählskala der Samples kann für jede dieser Optionen mit den Befehlen in den Tooltips erhöht werden.
- Aktiviere die Eigenschaft Atmosphärische Lichtdurchlässigkeit pro Sample verwenden, um die atmosphärische Durchlässigkeit pro Sample anzuwenden, anstatt die globale Durchlässigkeit des gerichteten Lichts zu verwenden.
- Stelle in deinem Volumenwolkenmaterial mit dem Ausdruck Volumetrische erweiterte Materialausgabe folgendes ein:
- Wende Bodenbeleuchtung auf den Boden der Wolkenebenen an, um den Wolken in der Szene mehr Form und Farbe zu verleihen.
- Aktiviere Bodenbeitrag im Detail-Panel. Verwende in der Komponente Volumetrische Wolke die Boden-Albedo, um die Bodenfarbe anzugeben, mit der die Wolke von unten im Verhältnis zum Sonnenlicht und zur Atmosphäre beleuchtet wird.
- Lege die Anzahl der Annäherungen fest, die zur Simulation der Mehrfachstreuung von Licht durch das Wolkenvolumen verwendet werden:
- Du kannst die Mehrfachstreuung von Licht durch das Wolkenvolumen besser simulieren, indem du die Anzahl der Mehrfachstreuungs-Näherungsoktaven erhöhst, bis zu einem Wert von 2.
- Das Licht wird durch das Wolkenvolumen stärker gestreut, wenn zusätzliche Oktaven angewendet werden, was bedeutet, dass du die Werte Beitrag zur Mehrfachstreuung und Mehrfachstreuung-Okklusion im Ausdruck „Volumetrische erweiterte Ausgabe" anpassen solltest, um dies auszugleichen.
- Wende Bodenbeleuchtung auf den Boden der Wolkenebenen an, um den Wolken in der Szene mehr Form und Farbe zu verleihen.
- Aktiviere die folgenden Schattierungseigenschaften von atmosphärischen Lichtern:
- Setze Wolkenschatten werfen, um Schatten von Wolken auf Szenenelemente und in die Atmosphäre zu werfen.
-
Setze Schatten auf Wolken werfen, um Schatten von undurchsichtigen Objekten auf Wolkenschichten zu werfen.
* Wähle zwischen den folgenden Qualitätsverbesserungen für die Himmelsatmosphäre, je nach deinen Projektanforderungen:Das gerichtete Licht muss einen ausreichend großen Dynamischen Schattenabstand haben, um große Objekte effektiv auf Wolken abzuschatten.
-
Wähle zwischen den folgenden Qualitätsverbesserungen für Himmelsatmosphäre, je nach deinen Projektanforderungen: Verbesserte Gesamtqualität der Atmosphärenwiedergabe. * Setze r.SkyAtmosphere.FastSkyLUT auf 0. Die Deaktivierung dieser Optimierung verlangsamt das Rendern, erzeugt aber weniger visuelle Artefakte mit hochfrequenten Details, die an Stellen wie dem Erdschatten oder der Streukeule auftreten können. **Verbesserung der Tracing-Qualität der Atmosphäre und der Sonnenlichtschächte in der Atmosphäre.
Erfordert die Aktivierung von
r.SkyAtmosphere.FastSkyLUT.Setze r.SkyAtmosphere.AerialPerspectiveLUT.FastApplyOnOpaque auf 0. Verwende in der Komponente Himmelsatmosphäre den Qualitätsregler Sample-Zählskala, um die Anzahl der verwendeten Sample einzustellen. Wenn der maximale Bereich nicht ausreicht, kannst du mit dem Befehl
r.SkyAtmosphere.SampleCountMaxeine höhere Grenze wählen und manuell einen Wert in das Eigenschaftsfeld eingeben. Verbessere die Qualität der Sonnenlichtschächte, indem du die LUT-Größen mit den Befehlen r.SkyAtmosphere.FastSkyLUT.Width und r.SkyAtmosphere.FastSkyLUT.Height erhöhst. Verbessere die Qualität des Nebels auf undurchsichtigen und transparenten Oberflächen, indem du die Größe von r.SkyAtmosphere.AerialPerspectiveLUT.Width erhöhst.Bei der Erhöhung dieses Wertes ist Vorsicht geboten, da es sich um eine 3D-Volumentextur handelt, die den Speicherverbrauch erhöht.
Volumetrisches Material
Ein Material, das die Materialdomäne Volumen verwendet, steuert das Aussehen von Wolken mit Volumentexturen. Eine Volumentextur ist eine 3D-Textur, die in eine Reihe von 2D-Texturen zerlegt wird, die an einem Raster ausgerichtet sind. Diese Arten von Texturen innerhalb eines Materials werden für verschiedene volumetrische Effekte wie Rauch und Wolken verwendet, da sie gut für Dinge wie Licht, das sich durch ein Volumen bewegt, funktionieren.
Die nachstehende Volumentextur stellt eine Reihe zweidimensionaler Bilder in einem Raster dar (links), die übereinandergelegt eine dreidimensionale Volumendarstellung ergeben (rechts).
Mit dem Textureditor kannst du eine Volumentextur öffnen und betrachten, um die zweidimensionale Bildansicht (links) oder die dreidimensionale Volumenansicht (rechts) anzuzeigen.
Zusammen mit den Attributen, die in der volumetrischen Wolkenkomponente und dem Material steuerbar sind, ist die Volumentextur die Basis, die das anfängliche Aussehen deiner Wolke bestimmt und dabei hilft, zu definieren, was möglich ist. Volumentexturen eröffnen dir die Möglichkeit, mit deinem Wolkenmaterial viele verschiedene Arten von Wolken und Effekten zu erstellen.
Die folgenden Beispiele zeigen verschiedene Arten von Wolken, die mit einem einzigen Volumenmaterial und einigen einstellbaren Parametern durch Instanzierung erstellt werden können. In diesem Beispiel wird die Datei „M_volumetricCloud_02_Profiles_Soft" verwendet, die im Inhalt des Volumetrics-Plugins verfügbar ist (siehe unten).
Dein Volumenmaterial hat Eingabe- und Ausgabeknoten für Materialausdrücke, die bearbeitbare Attribute bereitstellen, die die Grundlage deines Wolkenmaterials bilden. Einige dieser Einstellungen haben Auswirkungen auf die Leistung, die die Kosten für den Shader erhöhen oder verringern.
Es wird empfohlen, bei der Verwendung dieser Ausdrücke die Werte dieser Ausdrücke zu parametrisieren, um ihre Werte schnell und einfach in einer [Materialinstanz] (designing-visuals-rendering-and-graphics\materials\material-instances) anzupassen.
Volumetrics-Plugin-Inhalt
Der Inhalt dieses Plugins dient nur zu Demonstrationszwecken und ist möglicherweise nicht vollständig für die Verwendung in Projekten optimiert. Außerdem kann er in zukünftigen Versionen geändert oder entfernt werden. Er ist als Ausgangspunkt für die Erstellung eigener Inhalte im Editor gedacht.
Das Volumetrics-Plugin enthält Beispiele und experimentelle Inhalte, die von Epics technischen Künstlern erstellt wurden. Einige dieser Inhalte sind möglicherweise nicht speziell für das Wolkenrendering oder andere Arten von Werkzeugen, die das Volumenrendering verwenden, wie z. B. Flüssigkeitssimulationen, konzipiert.
Folge diesen Schritten, um loszulegen:
-
Das Plugin kann über das Hauptmenü durch Auswahl von Fenster > Plugin aktiviert werden. Suche und aktiviere das Volumetrics-Plugin.
Klicke auf das Bild für volle Größe.
-
Klicke in deiner Inhalts-Schublade / Inhaltsbrowser auf Einstellungen, um Engine-Inhalt anzeigen und Plugin-Inhalt anzeigen zu aktivieren.
Klicke auf das Bild für volle Größe.
-
Benutze deine Inhalts-Schublade / deinen Inhaltsbrowser, um den Volumetrics-Ordner zu finden und auszuwählen, in dem der Plugin-Inhalt gespeichert ist.
Beispiel-Wolkenmaterialien
In diesem Plugin stehen mehrere Arten von Wolkenmaterialien zur Auswahl. Sie können verwendet werden, um verschiedene Arten von Wolken in deinen Szenen zu erstellen.
Du findest diese Wolkenmaterialien im Ordner /Content/Sky/Materials mit dem Präfix M_Volumetric_Cloud_*. Zum Beispiel, Content/Sky/Materials/M_Volumetric_Cloud_02_Profiles_Soft.
Um diese effektiv zu nutzen, muss eine [Materialinstanz] (designing-visuals-rendering-and-graphics\materials\material-instances) des Wolkenmaterials erstellt und auf den Material-Slot der volumetrischen Wolkenkomponente angewendet werden. Wenn du die Instanz des Materials öffnest, kannst du die Parameter ändern, um die Wolken zu rendern und das gewünschte Aussehen, die Dichte, den Maßstab und vieles mehr zu erreichen.
Die meisten Wolken, die in den Screenshots für diese Dokumentation abgebildet sind, wurden aus diesen Beispielwolkenmaterialien erstellt, deren Parameter in der Materialinstanz geändert wurden.
Blueprint-platzierte Wolken
Platziere einzelne Wolken-Blueprint-Actors in deiner Szene, indem du das Beispiel in diesem Plugin-Ordner verwendest. Die einzeln platzierten Blueprints in der Szene können skaliert, gedreht und entlang der X- und Y-Achse bewegt werden. Die Komponente „Volumetrische Wolke" muss ebenfalls in der Szene vorhanden sein, zusammen mit einem zugewiesenen Wolkenmaterial, das verwendet werden soll. Der Blueprint Cloud Actor ermöglicht zusätzliche Anpassungen und die Platzierung von Wolken in deiner Szene.
Eine Beispieleinrichtung findest du im Ordner /Tools/CloudCompositing/Maps im Composite_Cloud_Object Level. Schau dir das BP_CloudMask_Object und den BP_CloudMask_Generator an, um zu sehen, wie diese Szene aufgebaut ist und welche Eigenschaften du für diesen Actor einstellen kannst.
Blueprint-gemalte Clouds
Mit diesem Beispiel kannst du Wolken auf deinen Himmel malen, um deiner Szene spärliche oder dicht gepackte Wolken hinzuzufügen. In diesem Beispiel wird ein Play-in-Editor-Spielmodus mit einer einfachen Benutzeroberfläche verwendet, um Wolken mit dem Mauszeiger zu malen, wobei der Pinsel, seine Intensität und vieles mehr skaliert werden kann.
Eine Beispieleinrichtung findest du im Ordner /Tools/CloudCompositing/Maps im Level Paint_Clouds. Wähle den Actor BP_PaintClouds, um einige der Eigenschaften zu erkunden, die du für die Art und Weise, wie deine Wolke gemalt wird, ändern kannst.
Um mit dem Malen von Wolken zu beginnen, drücke Abspielen in der Hauptwerkzeugleiste, um im Editor zu spielen. Male die Wolken wie folgt in die Szene ein:
- Linke Maustaste malt das Wolkenvolumen
- Mausrad skaliert die Größe des Pinsels. Umschalten + Mausrad ändert die Stärke der gemalten Pinselstriche. Umschalten während des Malens entfernt die gemalten Bereiche.
- Rechte Maustaste + Mausrad skaliert die Geschwindigkeit, mit der in die Wolke gemalt wird, wenn Geschwindigkeit aus dem Dropdown-Menü Malmodus in den BP_PaintCloud-Eigenschaften ausgewählt ist.
Leistung und Skalierbarkeit
Bei der Entwicklung deiner Projekte ist es wichtig, die Leistung und Skalierbarkeit über mehrere Plattformen hinweg zu verwalten. Die folgenden Abschnitte enthalten Informationen zur Skalierung der Wolkenqualität und zu anderen Funktionen, die für die Erfassung und Beleuchtung von Wolken in deinen Projekten relevant sind.
Unterstützte Plattformen
Die Komponenten Volumetrische Wolke und Himmelsatmosphäre unterstützen die folgenden Plattformen, um ein skalierbares Atmosphärensystem bereitzustellen:
| Funktion | Handy | XB1 / PS4 | XBX / PS5 | Low-End / High-End PC |
|---|---|---|---|---|
| Himmelsatmosphäre | JA* | JA | JA | JA |
| Volumetrische Wolken | NEIN | JA** | JA | JA |
* Erfordert ein Skydome-Mesh mit einem Material, bei dem Ist Himmel aktiviert ist. ** Um auf diesen Plattformen eine akzeptable Leistung zu erzielen, wird empfohlen, Self-Shadowing von Wolken mit Hilfe des Shadow-Map-Ansatzes anstelle des im Abschnitt Volumen-Ray-Marching und Shadow Maps erwähnten sekundären Tracings auszuwerten.
Kontrolle der Wolken-Tracing-Qualität
Das Wolkensystem führt eine Reihe von Traces durch das Volumenmaterial durch. Die Qualität des ermittelten Ergebnisses hängt von der Anzahl der verwendeten Samples ab. Je mehr Samples verwendet werden, desto höher ist die Qualität. Entsprechend ist bei Verwendung von weniger Samples die Qualität geringer.


Für verschiedene Plattformen ist es wichtig, ein Gleichgewicht zwischen Leistung und Qualität zu finden. Mit den Eigenschaften Wolken-Tracing kannst du die Verfolgungsqualität der wichtigsten Wolkenattribute skalieren, z. B. Wolken in Reflexionen, Schattenmuster für Wolken und Wolken in Reflexionen sowie die Entfernung von der Kamera, in der die Wolkenschattenbildung aufhören soll.
Für jede dieser Eigenschaften gibt es einen eigenen Konsolenbefehl, der über die Konfigurationsdatei der Geräteprofile (*.ini) für jede Plattform einzeln eingestellt werden kann. Dies bietet ein hohes Maß an Flexibilität bei der Einstellung der Zielskalierbarkeit über verschiedene Plattformen hinweg.
Optimieren deines Volumenwolkenmaterials
Die Grundlage für das Rendern von Wolken bilden das Volumenmaterial und die Ausdrücke Volumetrische erweiterte Ausgabe und Volumetrische erweiterte Eingabe, die im Materialdiagramm verwendet werden. Während du viele Aspekte deines Wolkenmaterials parametrisieren kannst, um einige seiner Attribute durch Materialinstanzierung zu steuern, können einige nur auf diesem Knoten vom Basismaterial aus eingestellt werden.
Die folgenden Vorschläge sind auf den Ausdruck Volumetrische erweiterte Ausgabe eingestellt und können unabhängig voneinander verwendet werden, wenn es gilt zu entscheiden, wie das Wolkenmaterial deines Projekts optimiert werden soll:
- Verwende Graustufenmaterial, um bei der Auswertung nur den R (Rot)-Kanal der Eingabeparameter des Materials zu berücksichtigen. In deiner Szene wird die Materialreaktion der Wolke in Graustufen dargestellt, aber die Beleuchtung des Materials wird weiterhin farbig sein.
- Aktiviere Bodenbeitrag, wenn dein Frame-Budget es zulässt. Das Sampeln des schattigen Beleuchtungsbeitrags vom Boden bis zur unteren Schicht der Wolken ist mit zusätzlichen Kosten verbunden.
- Begrenze die Anzahl der verwendeten Mehrfachstreuung-Annäherungsoktavzahlen, um etwas Leistung im Shader zu sparen. Standardmäßig wird eine einfache Streuung (0) verwendet, es können jedoch maximal zwei Annäherungsoktaven verwendet werden, um den Effekt der Mehrfachstreuung von Licht im Wolkenvolumen zu simulieren.
- Verwende das Kontrollkästchen Ray March Volumenschatten, um zwischen dem sekundären Ray Marching des Wolkenvolumens und der Verwendung von Cascaded Shadow Maps umzuschalten. Das Aktivieren von Cascaded Shadow Maps (Deaktivieren des Kontrollkästchens) führt zu einer Leistungssteigerung und bietet eine unendliche Länge für Schatten, auch wenn sie weniger genau und in Graustufen dargestellt werden.
- Das Attribut Konservative Dichte wird verwendet, um das Ray Marching zu beschleunigen, indem die teure Materialauswertung zu Beginn übersprungen wird. Die X-Komponente des Float-Vektors (Vector3) stellt die konservative Dichte des beteiligten Mediums dar. Wenn der Wert größer als 0 ist, wird das Material ausgewertet, andernfalls wird direkt die nächste Probe ausgewertet. Weitere Einzelheiten findest du in der Referenz für volumetrische Wolken.
Budgetierung mit dem Oberlicht-Echtzeit-Erfassungsmodus
Der Echtzeit-Erfassungsmodus für Oberlichter ermöglicht das Time-Slicing mit 9 Bildern, um die Aufnahme eines einzelnen Bildes auf mehrere Bilder zu verteilen. Diese Optimierung verbessert die Leistung bei der Erzielung von Tageszeitsimulationen und macht sie wesentlich kostengünstiger, da die Zeitscheibenberechnung nur so teuer ist wie ihr teuerster Frame. So hast du die Möglichkeit, die Qualität in anderen Bereichen deines Frame-Budgets ohne zusätzliche Kosten zu steigern.
Wenn du z. B. die erfassten Szenenelemente und ihre Frame-Kosten aufschlüsselst und feststellst, dass die Spiegelfaltung 0,8 Millisekunden (ms) pro Frame benötigt, Himmel und Wolken aber nur 0,6 ms, dann hast du im Frame-Budget noch Spielraum, um die Qualität von Himmel und Wolken geringfügig zu verbessern, ohne zusätzliche Kosten zu verursachen.
Auswertung der konservativen Dichte
Die Konservative Dichte wurde hinzugefügt, um den Ray-Marching-Prozess zu optimieren. Die Auswertung des gesamten Wolkenmaterialdiagramms für jedes Sample, das in der Atmosphäre per Ray Marching verarbeitet wird, würde schnell zu teuer werden. Um es kosteneffizienter zu machen, ist eine benutzerdefinierte konservative Dichte kostengünstig in der Auswertung. Die Materialbewertung könnte beispielsweise eine zweidimensionale Top-Down-Textur sein, die die Wolkendichte beschreibt, wobei die einzige Regel darin besteht, dass die konservative Dichte größer als 0 sein muss, wenn in der Atmosphäre eine Wolke vorhanden ist und die Auswertung mit dem Ausdruck Volumetrische erweiterte Eingabe erfolgt.
Während des Ray Marching der Atmosphäre wird ein Sample des Wolkenmaterials in zwei Schritten erfasst, wenn die konservative Dichteeingabe verwendet wird:
- Auf dem Knoten Volumetrische erweiterte Ausgabe wird das Diagramm der konservativen Dichteeingabe (Vektor 3) ausgewertet.
- Wenn die konservative Dichte von X (im Vector3) größer als 0 ist:
- Eine Entscheidung zur Auswertung des teureren Materialdiagramms, das in den Knoten Hauptmaterial eingesteckt wird (Bewertung von Albedo, Emissionsfarbe und Extinktion), wird verwendet.
- Die Werte können über den Knoten Volumetrische erweiterte Eingabe abgerufen werden, wodurch die Berechnung der konservativen Dichtewerte, die bereits in Schritt 1 ausgewertet wurden, vermieden wird.
- Andernfalls, wenn die Konservative Dichte von X gleich oder kleiner als 0 ist, wird die teurere Materialbewertung übersprungen und zum nächsten Sample übergegangen.
Die Unreal Engine unterstützt keine dynamischen Verzweigungen in ihrem Materialdiagramm. Der Input für konservative Dichte ermöglicht eine dynamische Verzweigung, um die teurere Materialbewertung zu überspringen, die auftreten kann. Wenn die Unreal Engine nativ dynamische Verzweigungen in Materialien unterstützt, werden Inputs wie diese obsolet und lassen den technischen Künstlern die Entscheidung, was dynamisch übersprungen werden kann.
Ray Tracing and Volumetrische Wolken
Das Wolkensystem unterstützt keine Ray Tracing-Funktionen und berücksichtigt nur die Wolken, wie sie im Oberlicht gerendert werden. Die Verfolgung volumetrischer Wolken für Reflexionen würde die Leistung erheblich beeinträchtigen.
Falls du Reflexionen auf einem Objekt im Himmel haben möchtest, ist es hilfreich, den Oberlicht-Actor näher am Objekt (im Himmel) zu platzieren.