Volumetrischer Nebel ist ein optionaler Teil der Komponente Exponential Height Fog. Volumetrischer Nebel berechnet die Dichte der beteiligten Medien und die Beleuchtung an jedem Punkt des Kamerafrustums, um unterschiedliche Dichten und eine beliebige Anzahl von Lichtern, die den Nebel beeinflussen, zu unterstützen.
Volumetrische Nebelsteuerung
Beim Einrichten und Anpassen des volumetrischen Nebels kannst du diesen global oder lokal in deiner Szene steuern. Mit den globalen Steuerelementen kannst du die Komponente Exponentialer Höhennebel verwenden, um den Nebel für die gesamte Szene zu steuern. Mit den lokalen Steuerelementen kannst du den Nebel mit Hilfe eines Partikelsystems in Bereichen steuern, in denen die Partikel spawnen können.
Globale Steuerelemente
Um volumetrischen Nebel zu steuern, können Sie die Eigenschaften in Exponentieller Höhennebel und auf jedem Licht einstellen, um die Höhe des Lichtbeitrags zu kontrollieren.
Exponentieller Höhennebel
Volumetrische Nebelsteuerungen finden Sie in der Komponente Exponentieller Höhennebel unter dem Abschnitt Volumetrischer Nebel. Die exponentielle Höhenverteilung liefert eine globale Dichte für volumetrischen Nebel.
| Eigenschaft | Beschreibung |
|---|---|
Verteilung der Streuung | Dadurch wird bestimmt, wie gerichtet die volumetrische Streuung ist. Ein Wert von 0 bedeutet, dass das Licht gleichmäßig in alle Richtungen gestreut wird, während ein Wert nahe 1 eine Streuung vorwiegend in die Richtung des Lichts verursacht (Sie müssen in das Licht schauen, um die Streuung zu sehen). |
Albedo | Dabei handelt es sich um die Gesamtreflexionsfähigkeit der beteiligten Medien. Clouds, Nebel und Dunst, die auf Wasserpartikeln basieren, haben eine Albedo von etwa 1. |
Emittierend | Dabei handelt es sich um die Lichtdichte, die von Höhennebel ausgestrahlt wird. |
Auslöschungsskalierung | Steuert, wie stark die beteiligten Medien das Licht blockieren. |
Betrachtungsabstand | Dies ist die Entfernung von der Kamera, über die der volumetrische Nebel berechnet wird. In der erstellten Volumentextur für den Nebel gibt es eine begrenzte Anzahl von Z-Slices, die von diesem Abstand abhängen. Eine Vergrößerung des Abstands führt zu einem Under-Sampling, das Artefakte hervorrufen kann. Die Anzahl der Z-Schnitte kann mithilfe von r.VolumetricFog.GridSizeZ angepasst werden. Je höher die Anzahl, desto besser die Qualität, aber auch desto teurer ist sie. |
Start Abstand | Dies ist die Entfernung (in Welteinheiten) von der Kamera, von der aus der volumetrische Nebel beginnt. |
Nah-Einblendungsabstand | Dies ist die Distanz, über die volumetrischer Nebel von der Startdistanz aus eingeblendet wird. |
Statische Beleuchtung Streuungsintensität | Skaliert die Intensität der volumetrischen Streuung des statischen Nebellichts. |
Lichtfarben mit Nebeleinstreufarben außer Kraft setzen | Wenn aktiviert, verwendet die Eigenschaften Nebelstreuende Farbe, Richtungsstreuende Farbe, und Einstreuende Textur zum Überschreiben der Lichtfarbe mit volumetrischem Nebel. |
Beleuchtung
Der Beitrag jedes Lichts zur Szene (und ob es den Nebel beschattet) kann durch Anpassen der folgenden Eigenschaften im Detailfenster jedes Lichts unter dem Abschnitt Licht.
| Eigenschaft | Beschreibung |
|---|---|
Volumetrische Streuungs-Intensität | Steuert, wie viel dieses Licht zum volumetrischen Nebel beiträgt. Wenn der Wert auf 0 gesetzt ist, erfolgt kein Beitrag. |
Wirft volumetrische Schatten | Schaltet um, ob für Lichter, die zum volumetrischen Nebel beitragen, ein volumetrischer Schatten geworfen werden soll oder nicht. Wenn Schattenwurf aktiviert ist, sind Punkt- und Scheinwerferlichter etwa dreimal so teuer, da sie zur Schattenbildung der Volumentexturen beitragen, während Lichter ohne Schattenwurf nur zum Nebel beitragen, aber keinen Schatten werfen. |
In diesem Beispiel wurde der Beitrag des Scheinwerferlichts zum volumetrischen Nebel deaktiviert, indem die Volumetrische Streuintensität auf 0 gestellt wurde.
Lokale Steuerungen
Materialien unter Verwendung der Domäne Volumen beschreibt Albedo, Emissive und Extinktion für einen gegebenen Punkt im Raum. Albedo liegt im Bereich [0-1], während Emissivität und Extinktion Welt-Raumdichten mit einem beliebigen Wert über 0 sind.
Volumenmaterialien funktionieren derzeit nur für Partikel und Positionen innerhalb des Partikelradius sind gültig, was normalerweise durch eine SphereMask gehandhabt wird.
Wenn ein einzelnes Partikelsystem mit dem Material platziert wird, wird dem volumetrischen Nebel eine Kugel mit der Dichte hinzugefügt. Der Effekt ist vollständig dreidimensional (3D), ohne dass Billboards verwendet werden.
Wenn du diesen Ansatz weiterverfolgst, kannst du mehrere kugelförmige Nebelpartikel mit Rauschen aus Texturen verwenden, um den Nebel auf einen bestimmten Bereich deiner Szene zu beschränken.
In dieser Szene haben sich die Nebelpartikel in diesen tiefer gelegenen Bereichen angesammelt, um einen lokalisierten Nebeleffekt zu erzeugen, der mit volumetrischem Nebel schattiert wird.
Zeitliche Reprojektion
Die von Volumetrischem Nebel verwendeten Volumentexturen (Voxel) sind relativ niedrig aufgelöst und am Kamerafrustum ausgerichtet. Volumetrischer Nebel verwendet einen starken zeitlichen Reprojektionsfilter mit einem unterschiedlichen Sub-Voxel-Jitter pro Frame, um das Aliasing zu glätten. Ein Nebeneffekt ist, dass schnell wechselnde Lichter, wie Taschenlampen und Mündungsfeuer, Lichtspuren hinterlassen. Um den Beitrag dieser Lichter zu deaktivieren, setzen Sie Volumetrische Streuintensität auf 0.
Vorkalkulierte Beleuchtung auf volumetrischem Nebel
Volumetrische Lightmaps unterstützen die Anwendung statischer Beleuchtung für volumetrischen Nebel, indem jedes Nebel-Voxel die vorberechnete Beleuchtung an seiner Position im Raum interpoliert.
Die indirekte Beleuchtung stationärer Lichter ist in Lichtkarten gespeichert, was sich nun auf Nebel auswirkt.
Oberlichter werden ausreichend beschattet, wodurch ein übermäßiger Nebel in Innenräumen verhindert wird.
Statisch und emittierend für statische Lichter wirken sich auf Nebel aus, ohne dass Kosten entstehen, da sie alle in die volumetrische Lichtkarte integriert werden.
Performance
Die GPU-Kosten des volumetrischen Nebels werden in erster Linie durch die Auflösung der Volumentextur gesteuert, die auf dem Schatten-Level der Engine-Skalierbarkeit eingestellt wird. Volumetrischer Nebel kostet 1 Millisekunde auf PlayStation 4 bei hohen Einstellungen, und 3 Millisekunden auf einer NVIDIA 970 GTX auf Epos, die achtmal mehr Voxel zur Bearbeitung haben.
Partikel mit Domäne Volumen können je nach 3D-Überzeichnung und Befehlsanzahl erhebliche GPU-Kosten verursachen. Verwenden Sie den Konsolenbefehl
Profil-GPU, um diese Kosten zu prüfen.Punkt- und Scheinwerferlichter, die Volumetrischer Schattenwurf aktiviert, kosten etwa dreimal mehr als Punkt- und Scheinwerferlichter ohne Schatten.
Beim Cloud-Rendering wird der teure Pfad verwendet, wenn r.PostProcessing.PropagateAlpha aktiviert ist und wenn bei Funktionen wie „Exponential Height Fog“, „Volutric Cloud“ und „Sky Atmosphere“ die Alpha-Holdout-Funktion aktiviert ist.
Derzeit unterstützte Funktionen
Diese Liste enthält die derzeit unterstützten Funktionen des volumetrischen Nebels:
Ein einzelnes gerichtetes Licht mit Schattenwurf von kaskadierten Schattenkarten oder statischem Schattenwurf mit einer Lichtfunktion.
Eine beliebige Anzahl von Punkt- und Scheinwerferlichtern mit dynamischer oder statischer Beschattung (falls Volumetrischer Schattenwurf aktiviert ist).
Beschattung stationärer Himmelslichter.
Vorkalkulierte Beleuchtung durch volumetrische Lichtkarten (direkte Beleuchtung von statischen Lichtern, indirekte Beleuchtung von stationären Lichtern).
Ein einzelnes Oberlicht mit Schatten durch Distance Field Ambient Occlusion (falls aktiviert).
Partikellichter (wenn Volumetrische Streuintensität größer ist als 0).
Auch die Transluzenz wird durch den volumetrischen Nebel je nach seiner Position in der Szene beeinflusst. Standardmäßig berechnet Transluzenz den Nebel an den Scheitelpunkten, so dass Wasserflächen mit geringer Tesselierung Artefakte verursachen können. Diese Materialien können so eingestellt werden, dass sie die Nebelbildung pro Pixel berechnen, um dieses Problem zu lösen mit Nebel pro Pixel berechnen in den Materialdetails aktiviert.
Bekannte Probleme
Die folgenden Funktionen sind noch nicht unterstützt bei der Verwendung von Volumetric Fog:
IES-Profile und Lichtfunktionen für Punkt- und Scheinwerferlichter.
Schattenbildung durch Ray Traced Distance Field Shadows.
Schattenbildung durch volumetrischen Nebel (selbst).
Quellradius bei Punkt- und Scheinwerferlichtern.
Einige Einstellungen im exponentiellen Höhennebel, wie Nebel-Grenzabstand, Startabstand und maximale Nebeldeckkraft.
Häufig gestellte Fragen
Im Folgenden findest du einige allgemeine Fragen und Probleme, die bei der Verwendung von volumetrischem Nebel auftreten können.
Wie kann man stärkere Lichtstrahlen ohne dichten globalen Nebel erreichen?
Wenn die globale Nebeldichte erhöht wird, entsteht dichterer Nebel, sodass Sie Lichtstrahlen (Lichtschatten) nur dann bemerken, wenn der Nebel dicht genug ist, um alles stark einzuhüllen. Es gibt zwei Möglichkeiten, um stärkere Lichtschächte ohne starken Nebel zu erhalten:
Halten Sie die globale Nebeldichte niedrig, verwenden Sie jedoch eine höhere Volumetrische Streuintensität für das gerichtete Licht. Passen Sie außerdem die Streuverteilung in Ihrem exponentiellen Höhennebel Actors auf nahezu 0,9 ein.
Halte die globale Nebeldichte niedrig, aber erhöhe sie in bestimmten Bereichen mit Volumenpartikeln.
Können Exponential Height Fog und Volumetric Fog gleichzeitig verwendet werden?
Derzeit ersetzt der volumetrische Nebel Nebelstreuende Farbe innerhalb des volumetrischen Nebels Sichtweite. Da volumetrischer Nebel physikalisch basiert ist und exponentieller Nebel nicht, ist es unmöglich, die beiden Systeme in der Ferne zu mischen, damit sie genau übereinstimmen. Das bedeutet auch, dass einige Einstellungen in der Komponente Exponentialer Höhennebel keine Auswirkungen auf den volumetrischen Nebel haben werden.
Kann das Zentrum des volumetrischen Nebels von der Kamera entkoppelt werden? Dies wäre ideal für Top-Down-Spiele...
Derzeit allerdings nicht, ein eigenständiger Band wäre hierfür jedoch ideal. Es ist jedoch schwierig, diese effizient in die Transluzenz zu integrieren.