Substrate ist der Ansatz von Unreal Engine zur Erstellung von Materialien, der die feste Suite von Schattierungsmodellen und Überblendmodi, wie Standardbeleuchtung und Clear Coat, durch ein ausdrucksstärkeres und modulareres Framework ersetzt.
Bestimmte Abstraktionen des Nicht-Substrate-Systems (oder veralteten Materialien) werden durch Substrate ersetzt. Stattdessen werden gemessene Materialeigenschaften verwendet. Dies erweitert den Parameterraum, mit dem du arbeiten kannst, und macht es möglich, diskrete Oberflächentypen wie Metall, Glas und Kunststoff genauer zu mischen. Substrate optimiert auch den Prozess der Schichtung von Materialien und macht es so einfacher, Oberflächen wie Flüssigkeiten auf Metall oder einen Clear Coat über Subsurface Scattering darzustellen.
Materialien werden in Substrate als „Materie-Slabs“ konzipiert. Diese Slabs sind eine auf Prinzipien basierende BSDF-Darstellung (bidirektionale Streuungsverteilungsfunktion), die durch physikalische Größen mit genau definierten Einheiten parametrisiert sind. Materialien werden als ein Diagramm von Slabs dargestellt, in denen Operationen durchgeführt werden (wie Mischen und Layering). Aufgrund ihrer auf Prinzipien basierenden Repräsentation können Substrate-Materialien je nach Kapazität einer Plattform vereinfacht werden, um die visuelle Qualität gegen Performance einzutauschen.
Neue Projekte
Substrate ist standardmäßig für alle neu erstellten Projekte aktiviert. Bestehende Projekte, die auf UE 5.7 und höher aktualisiert werden, werden standardmäßig weiterhin den Nicht-Substrate-Pfad verwenden, es sei denn, in den Projekt-Einstellungen wurde ausdrücklich die Substrate-Unterstützung aktiviert.
Für diese bestehenden Projekte kannst du Substrate über die Projekt-Einstellungen > Rendering aktivieren und Substrate-Materialien einschalten, und dann dein Projekt neu starten, damit die Änderungen wirksam werden.
Für neue Projekte, bei denen Substrate standardmäßig aktiviert ist, wird das Zusammensetzbarer GBuffer Format verwendet, um Geschwindigkeit über visueller Wiedergabetreue zu priorisieren. Dieses Format kann in den Rendering-Einstellungen des Projekts geändert werden.
Einige Vorlagenprojekte, z. B. im Automobil- und Architektur, verwenden standardmäßig den adaptiven GBuffer, um visuelle Wiedergabetreue über Performance zu verbessern.
Weitere Informationen zur Einrichtung des GBuffer-Formats für dein Projekt findest du im Abschnitt „GBuffer-Format“ auf dieser Seite.
Material-Editor Konvertierung
Bestehende Nicht-Substrate-Materialien funktionieren ohne weiteres, werden jedoch nicht automatisch in Substrate-Knoten konvertiert. Bestehende Nicht-Substrate-Materialien oder neu erstellte Materialien verwenden weiterhin die Nicht-Substrate- Stammknoten -Parameterisierung und werden zur Kompilierungszeit zu Substrate konvertiert. Dies vereinfacht die Projektmigration, macht Änderungen oder erneutes Speichern von Assets überflüssig und hilft bei der Reduzierung der Cooking-Kosten.
Um ein Material in ein Substrate zu konvertieren, klicke mit der rechten Maustaste auf den Stammknoten und wähle In Substrate konvertieren aus. Dadurch wird automatisch ein Platte erstellt, die mit dem Oberflächenmaterial des Stammknotens verbunden wird, und die Inputs vom Nicht-Substrate-Stammknoten werden mit der Platte verbunden.
Befolge diese Richtlinien, wenn du Substrate in einem bestehenden Projekt aktivierst oder zu Unreal Engine 5.7 oder späteren Versionen migrierst:
Das Öffnen eines bestehenden Nicht-Substrate-Materials in einem Substrate-fähigen Projekt verändert das Material nicht mehr. Es bleibt mit Nicht-Substrate-Projekten kompatibel.
Explizit konvertierte Materialien sind nicht mit Nicht-Substrate-Projekten kompatibel. Die Konvertierung ist dauerhaft und das Material kann nicht wieder in ein Nicht-Substrate-Material zurückverwandelt werden.
Substrate-Materialien werden schwarz gerendert, wenn Substrate für das Projekt deaktiviert ist. Das umfasst alle Legacy-Substrate-Materialien, die aus konvertierten Materialien erstellt wurden. Du kannst jedes konvertierte Substrate-Material manuell mit einem Legacy-Material verbinden, aber dabei bleiben die Substrate-Knoten bestehen, die sich jetzt im Materialdiagramm befinden.
GBuffer-Format für visuelle Wiedergabetreue
Substrate unterstützt zwei verschiedene GBuffer Formate zum Speichern von Materialdaten: Zusammensetzbarer GBuffer und Adaptiver GBuffer. Diese Formate bringen verschiedene Kompromisse in Bezug auf Geschwindigkeit, Speicher und visuelle Wiedergabetreue mit sich.
Zusammensetzbarer GBuffer
Dieses Format zielt in erster Line auf feste Speicher Footprint und vorhersagbare Geschwindigkeit ab. Es wird hauptsächlich für 60Hz Projekte verwendet. Es verfügt über einen eingeschränkten Funktionsumfang und ähnelt dem Nicht-Substrate-Pfad.
Die Performance entspricht der des Nicht-Substrate-Pfads.
Zielt auf Performance-orientiertes Projekt (60Hz).
Gewährleistet visuelle Konsistenz auf allen Plattformen.
Kein Overhead beim Cooking.
Es erzwingt nicht dass die DBuffer-Aufkleber-Technik aktiviert wird.
Adaptiver GBuffer
Dieses Format zielt auf visuelle Wiedergabetreue ab und nutzt das volle Potenzial von Substrate, was eine angereicherte Materialkomplexität ermöglicht.
Performance-Kosten sind höher und hängen von der Komplexität des Materials ab, die auf dem Bildschirm sichtbar ist.
Zielt auf visuelle Wiedergabetreue ab und ermöglicht komplexere Schattierungsverhalten.
Die hohe visuelle Wiedergabetreue hängt von der Plattform ab.
Die Cooking-Zeit erhöht sich im Vergleich zum Überblenden-Format um etwa 15%. Materialien mit komplexen Schattierungsverhalten erhöhen die Cooking-Zeit zusätzlich.
Dadurch wird die DBuffer-Aufkleber-Technik zwangsweise aktiviert.
Zusätzliche Steuerungselemente für Anzahl der Schließungen und Bytes pro Pixel sind in den Projekt-Einstellungen und der Konsolenvariable verfügbar.
Dieses Format wird nur auf Konsolen der aktuellen Generation Xbox Serie X/S, PlayStation 5 und PlayStation 5 Pro, Windows-PC (SM6), MacOS (SM6) und Linux (SM6) unterstützt. Auf anderen Plattformen (einschließlich SM5 Plattformen) sind Materialien vereinfacht und die Plattformen laufen im Zusammensetzbarer GBuffer Format.
Informationen zu bekannten Problemen bei der Verwendung von Adaptive GBuffer findest du im Abschnitt Einschränkungen und bekannte Probleme auf dieser Seite.
DBuffer
Das Überblendbarer GBuffer Format unterstützt weiterhin sowohl zusammensetzbare Aufkleber als auch DBuffer-Aufkleber. DBuffer-Aufkleber ist standardmäßig aktiviert, aber du kannst Opt-out in den Projekt-Einstellungen.
Das adaptive GBuffer-Format unterstützt nur DBuffer-Aufkleber. Wenn das Projekt den DBuffer-Aufkleber nicht verwendet, wird es vom Rendering-System automatisch für Plattformen aktiviert, die das adaptive GBuffer-Format unterstützen.
Bei Verwendung von DBuffer-Aufklebern unterstützt Substrate das normale Lesen von Materialien während der DBuffer-Auswertung als experimentellen Pfad, der mit r.Substrate.DBufferPass aktiviert werden kann. Dies erlaubt es dem DBuffer-Material, das Normale des Materials ohne temporale Rückprojektion oder tiefenbasierte Normale Rekonstruktion zu verwenden.
Optionale Projekt-Einstellungen und Konsolenvariablen
Substrate umfasst diese optionalen Projekt-Einstellungen und Konsolenvariablen:
| Projekt-Einstellungen | Beschreibung |
|---|---|
Substrate-GBuffer Format (Projekt) | Wähle das für das Projekt verwendete GBuffer-Format aus:
|
Substrate Abschluss-pro-Pixel (Projekt) | Definiert die maximale Anzahl von Abschlüsse, die pro Pixel ausgewertet werden können. Wenn ein Material mehr Abschlüsse als hier angegeben enthält, wird das Material iterativ vereinfacht, bis es in das Budget des Projekts passt. Zusätzlich hat jede Plattform ihre eigene Obergrenze für die Anzahl der Abschlüsse, die mit diesen Einstellungen überschrieben werden kann:
|
Substrate Abschluss-pro-Pixel überschreiben | Wähle aus, wie die maximale Anzahl der pro Pixel ausgewerteten Abschlüsse für jede Plattform definiert wird:
|
Raue Reflexion für undurchsichtiges Substrate-Material (experimentell) | Wenn aktiviert, können raue Oberflächen, die andere Materialien bedecken, die unteren Ebenen auf physikalisch plausible Weise weichzeichnen. Diese Funktion ist experimentell. |
Substrate – raue Refraktion für durchscheinendes Material | Wenn aktiviert, können durchscheinende Oberflächen raue Refraktion als Funktion der Rauheit erzeugen. Ist dies aktiviert, wird der Verzerrungsdurchlauf teurer. |
Substrate – erweiterte Visualisierungs-Shader (nur Editor/Win64/DX12) | Erweitertes Debuggen der Materialvisualisierungs-Shader für Substrate aktivieren. Basis-Durchlauf-Shader können solche erweiterten Daten ausgeben. Nur verfügbar für Editoren, die für Win64 entwickelt wurden und die DX12 Grafik-API ausführen. |
Substrate-Material-Ebenen-Support aktivieren (experimentell) | Aktiviert Substrate-Material-Ebenen und Benutzeroberflächen. Hinweis: Diese Unterstützung ist einseitig, die Materialien der Legacy-Ebene werden automatisch aktualisiert und können nur manuell rückgängig gemacht werden, nachdem die Assets erneut gespeichert wurden. |
| Konsolenvariablen | |
| Bietet eine Möglichkeit, den Speicherplatz eines Substrate-Materials in Byte pro Pixel festzulegen, bevor er automatisch vereinfacht wird. Diese Variable ist standardmäßig auf 80 Byte pro Pixel eingestellt. Du kannst sie für komplexe Materialien mit höherem Speicherbedarf erhöhen. Höhere Werte verbrauchen mehr Speicher und können sich auf die Speicherbandbreite und andere Performance-Charakteristiken auswirken. Die Beziehung dieser Variable zur Performance hängt sowohl vom Inhalt als auch von der Plattform ab. Du kannst diesen Wert bei Bedarf für jede Plattform in der .ini Konfiguration der Plattform angeben. |
| Bietet eine Möglichkeit, die Anzahl der pro Pixel ausgewerteten Schließungen festzulegen. Wenn ein Material mehr Schließungen als dieser Wert hat, wird das Material automatisch vereinfacht, um die Schließungsanzahl zu berücksichtigen. |
| Durch Aktivieren dieser Option wird Substrate dazu gezwungen, alle Materialien unter Verwendung eines einzigen Schattierungsmodells pro Pixel in den alten GBuffer zu konvertieren. Dies kann auf leistungsschwachen Plattformen verwendet werden, um die Performance in einigen Projekten zu verbessern, die es benötigen. |
Beziehung von Substrate zu Material-Ebenen
Traditionelle Material-Ebenen in Unreal Engine (sowohl diagrammbasiert als auch in der grafischen Benutzeroberfläche mit benutzerdefinierten Ebenen) basieren auf dem Konzept des Überblendens von Parametern. Jede Ebene definiert ein Diagramm von Parametern, die gemischt und in das endgültige Schattierungsmodell eingespeist werden.
Nichts hindert Material-Ebenen-gesteuerte Parameter daran, in ein Substrate-definiertes Schattierungsmodell einzufließen. Allerdings müsstest du diese Logik manuell einrichten, indem du den Output eines Materialattribut-Knotens im Parent-Material verwendest. Eine Einschränkung dieses Ansatzes besteht darin, dass das Materialattribut-System über eine feste Liste von Parametern verfügt, aber möglicherweise nicht genügend Slots vorhanden sind, um eine Multi-Slabs-Konfiguration mit Substrate zu versorgen – möglicherweise müssen Pins willkürlich und ohne Bezug zu ihrer tatsächlichen Bedeutung verwendet werden.
Substrate kann nativ die Parameter-Überblendung verwenden, wie später auf dieser Seite beschrieben, aber es gibt keine Möglichkeit, über das Material-Ebenen-Interface auf diese Funktion zuzugreifen. Die Vereinheitlichung von Substrate und Material-Ebenen ist ein interessantes Gebiet für zukünftige Entwicklungen.
Beachte bitte, dass Materialattribute und Material-Ebenen keine echte Materialschichtung ermöglichen: Es ist möglich, einen Clear Coat zu simulieren, aber keine obere Ebene mit farbiger Durchsichtigkeit über einer anderen. Sie ermöglichen nur das Überblenden oder horizontale Vermischen von zwei Materialien auf einer Oberfläche, nicht das Aufschichten eines Platte-Materie auf eine andere.
Arbeit mit Substrate-Materialien
Substrate-Materialien werden ähnlich erstellt wie Legacy-Materialien. Dieser Abschnitt behandelt die Hauptelemente, aus denen sich die Substrate-Materialien zusammensetzen, einschließlich der Knoten, Überblendmodi und Details zu den Typen von Materialien, die du erstellen kannst.
Substrate – Material-Stammknoten
Der Material-Stammknoten ist wie bei Legacy-Materialien der Knoten, in den Substrate-Slabs und andere Substrate-Knoten (z. B. Operatoren und Bausteine) über das Oberflächenmaterial eingespeist werden.
Alle Substrate-Materialdiagramme müssen mit dem Oberflächenmaterial-Input des Stammknotens verbunden sein. Dieser Input ist der Endpunkt jedes Substrate-Diagramms.
Wie auch bei Legacy-Materialien nutzt du das Details-Panel, wenn der Material-Stammknoten ausgewählt ist, um den Überblendmodus und andere Eigenschaften einzurichten, die das Aussehen des Materials definieren. Die Material-Domain und das Schattierungsmodell werden automatisch aus dem Diagramm abgeleitet.
Substrate-Überblendmodi
Substrate verwendet seine eigenen Blend Modi, um zu definieren, wie die Farbe des Materials mit dem Hintergrund überblendet wird. Die Überblendmodi für Legacy-Materialien sind in ihrer Kombinations- und Überblendmöglichkeiten eingeschränkt, wodurch auch die damit erstellbaren Arten von Materialien begrenzt sind. Substrate bietet eine größere Auswahl an Überblendmodi, mit denen du alle möglichen Materialien erstellen kannst. Dies ist besonders wichtig, um eine physikalisch korrekte, durchscheinende Oberflächen-Schattierung zu erreichen.
Substrate beinhaltet die folgenden Überblendmodi:
| Überblendmodus | Beschreibung |
|---|---|
Undurchsichtig | Definiert eine Oberfläche, durch die Licht weder hindurchgeht noch eindringt. Eine undurchsichtige Oberfläche mit einer Deckkraft von 1. Das ist dasselbe wie der alte undurchsichtige Überblendmodus. |
Maskiert | Wird für Materialien verwendet, die die Sichtbarkeit binär (ein/aus) selektiv steuern müssen. Eine undurchsichtige Oberfläche mit einer Deckkraft von 1 oder 0. Das ist dasselbe wie der alte maskierte Überblendmodus. |
Durchscheinend – Graue Transmittanz | Ein durchscheinendes Material mit farbiger Oberfläche und Deckkraft, aber auf Graustufen reduzierter Transmittanz. Das geht schneller, da vermieden wird, dass die Transluzenz nach der Schärfentiefe in einen modulierenden Render-Durchlauf gelangt. Dies ist der Fallback-Überblendmodus für Plattformen, die keine hardwarebasierte farbige Transluzenz (sogenanntes Dual-Source-Color-Blending) unterstützen. Dies ähnelt dem alten durchscheinenden Überblendmodus. |
Zusatzstoff | Fügt die Farbe des Materials zur Farbe des Hintergrunds hinzu. Dabei gilt: Endfarbe = Quellfarbe + Zielfarbe. |
Nur farbige Transmittanz | Nur die Transmittanz des Materials wird verwendet. Oberflächeninteraktionen werden auf 0 reduziert. Das ist dasselbe wie der alte multiplizierende Überblendmodus. |
AlphaComposite (vormultipliziertes Alpha) | Dieser Überblendmodus ermöglicht eine feinere Steuerung des Farbanteils eines Materials, das additiv über die Szene gemischt wird, sowie des Deckkraftgrades, wodurch die Sichtbarkeit der Szene dahinter reduziert wird (die Deckkraft des Materials kann über den Opazitäts-Input des Stammknotens überschrieben werden). Funktioniert genauso wie der alte Alpha-Composite-Überblendmodus (Vormultipliziertes Alpha). |
AlphaHoldout | Dieser Überblendmodus behält den Alpha-Wert bei, sodass Objekte durchbrochen werden können, um die dahinter liegenden Objekte sichtbar zu machen. Funktioniert genauso wie der alte AlphaHoldout-Überblendmodus. |
Durchscheinend – Farbige Transmittanz | Ein voll funktionsfähiges durchscheinendes Material mit farbiger Oberfläche, Deckkraft und Farbtransmittanz. Dies ist teurer, wenn separate Transluzenz bei der Nachbearbeitung der Schärfentiefe verwendet wird, da die Transmittanzkomponente in einem separaten Buffer gerendert werden muss, ähnlich wie beim älteren ThinTranslucent-Schattierungsmodell. |
Mit Substrate ist die Arbeit mit Transluzenz einfacher als mit traditionellen Materialien – durchscheinende Überblendmodi lassen sich besser durch ihre Absicht definieren. Ein Aspekt, der zwischen beiden unverändert bleibt, ist, dass jeder durchscheinende Überblendmodus auch einen Beleuchtungsmodus setzen muss, um zu definieren, wie die Beleuchtung für seine Oberfläche berechnet wird. Dies ist wichtig, um durchscheinenden Materialien den korrekten Look zu verleihen.
Die meisten durchscheinenden Materialien, die du erstellst, verwenden Oberflächen-Transluzenz oder Oberflächen-Vorwärts-Schattierung.
Die folgenden Modi stehen zur Auswahl:
| Beleuchtungsmodi | Beschreibung |
|---|---|
Volumetrisch nicht-direktional | Die Beleuchtung wird für ein Volumen ohne Richtwirkung berechnet. Verwende dies für Partikeleffekte wie Rauch und Staub. Dies ist die kostengünstigste Pro-Pixel-Beleuchtung. Allerdings wird die Materialnormale nicht berücksichtigt. |
Volumetrisch direktional | Die Beleuchtung wird für ein Volumen mit Direktionalität berechnet, sodass die Normale des Materials berücksichtigt wird. Beachte, dass der Standard-Partikel-Tangentialraum zur Kamera zeigt. Schalte also „Generate Spherical Particles“ (Kugelpartikel generieren) ein, um einen nützlicheren Tangentialraum zu erhalten. |
Volumetrisch pro Scheitelpunkt nicht-direktional | Wie „Volumetrisch nicht-directional“, aber die Beleuchtung wird nur an Scheitelpunkten ausgewertet, sodass die Pixel-Shader-Kosten deutlich geringer sind. Beachte, dass die Beleuchtung immer noch von einer Volumentextur stammt, daher ist ihrer Reichweite begrenzt. Direktionale Lichter werden in der Ferne unbeschattet. |
Volumetrisch pro Scheitelpunkt direktional | Wie „Volumetrisch direktional“, aber die Beleuchtung wird nur an Scheitelpunkten ausgewertet, sodass die Pixel-Shader Kosten wesentlich geringer sind. Beachte, dass die Beleuchtung immer noch von einer Volumentextur stammt, daher ist ihrer Reichweite begrenzt. Direktionale Lichter werden in der Ferne unbeschattet. |
Oberflächen-Transluzenz-Volumen | Die Beleuchtung wird für eine Oberfläche berechnet. Das Licht wird in einem Volumen akkumuliert, sodass das Ergebnis verschwommen ist und eine begrenzte Entfernung hat, aber die Kosten pro Pixel sehr gering sind. Verwende dies auf durchscheinenden Oberflächen wie Glas und Wasser. Es wird nur diffuse Beleuchtung unterstützt. |
Oberflächen-Vorwärts-Schattierung | Die Beleuchtung wird für eine Oberfläche berechnet. Verwende dies auf durchscheinenden Oberflächen wie Glas und Wasser. Dies wird mit Vorwärts-Schattierung implementiert, sodass Spiegelungen von lokalen Lichtquellen unterstützt werden, viele Funktionen, die nur im Deferred-Modus verfügbar sind, jedoch nicht. Dies ist die teuerste Transluzenz-Beleuchtungsmethode, da der Beitrag jedes Lichts pro Pixel berechnet wird. |
Einige Beispiele zur Einstellung und Verwendung von Transluzenz in einem Substrate-Material findest du im Abschnitt Transluzenz auf dieser Seite.
Substrate-Slab
Die Substrate-Slab ist der Grundbaustein, aus dem man ein Substrate-Material zusammenstellt. Sie ist so konzipiert, dass sie die minimal notwendige Anzahl an Parametern umfasst, mit denen die überwiegende Mehrheit der Materialerscheinungen erzielen lässt. Damit bildet sie die Grundlage für eine wesentlich ausdrucksstärkere Art der Optikgestaltung.
Ein Slab ist eine prinzipielle Darstellung einer Materieslab, die aus einer Interface und einem Medium besteht.
Der Aufbau eines Substrate-Slab: Das Interface (1) und das Medium (2).
Das Interface ist die Grenze, an der Licht mit der Oberfläche des Materials interagiert. Die Eigenschaften des Interface werden hauptsächlich durch die eingespeisten Werte Rauheit, Normal, Albedo, F0 und F90 definiert.
Das Medium ist das Materialvolumen unter der Interface, in dem Licht gestreut, durchgelassen und aufgenommen wird. Die Eigenschaften des Mediums werden hauptsächlich durch den mittleren freien Pfad (MFP) oder die streuenden Albedo-Inputs definiert.
Der Substrate-Slab ist ein modularer Ersatz für den monolithischen Material-Stammknoten in Nicht-Substrate-Materialien. Sie besteht aus mehreren Oberflächenattributen, wie Streuung, Glanz, Rauheit, Emissiv, Stoff, Anisotropie und vielen mehr. Alle Substrate-Knoten enthalten Eigenschaften, die für ihren benannten Output für den Typ des von ihnen produzierten Materials relevant sind, etwa Auge, Haare, einfacher Clear Coat und so weiter.
Traditionelle Materialien verlassen sich auf ihren Überblendmodus, um Inputs darzustellen, die verwendet werden können. Substrate verwendet seine verschiedenen BSDF-Slabs, um den Typ des Materials zu definieren. Da diese nicht mehr direkt an Überblendmodi gebunden sind, können sie übereinandergelegt und gemischt werden, um verschiedene Arten von Materialien zu erzeugen.
Der primäre Substrate-Slab-BSDF-Knoten umfasst die folgenden Input:
| Substrate-Slab-Inputs | Definition |
|---|---|
Gestreute Albedo | Definiert den Prozentsatz des Lichts, das von einer Oberfläche gestreut reflektiert wird. Dies ähnelt der lokalen Basisfarbe des Mediums. Der Standardwert ist 0,18. Die gestreute Albedo stellt auch den Prozentsatz des Lichts dar, der vom beteiligten Medium gestreut wird, wenn die einfache Volumen-Subsurface-Darstellung verwendet wird. |
F0 | Definiert die Farbe und Helligkeit des Glanz-Highlights, wo die Oberfläche senkrecht zur Kamera steht. Bei dielektrischen Materialien (Kunststoffe und andere Nichtmetalle) liegt dieser Wert typischerweise im Bereich von 0 bis 0,08. Bei metallischen Materialien kann er bis zu 1 betragen. Edelsteine liegen in einem Bereich bis etwa 0,16. |
F90 | Legt die Farbe des Glanz-Highlights fest, wenn die Oberflächennormale einen Winkel von 90 Grad zur Kamera bildet. Mit anderen Worten, in einem tieferen Winkel relativ zur Kameraansicht. Es werden nur Farbton und Sättigung wahrgenommen, da die Helligkeit auf 1,0 festgelegt ist. Dies blendet zu Schwarz aus, wenn F0 unter 0,02 fällt. |
Rauheit | Steuert, wie rau das Material ist. Die Rauheit der Oberfläche von 0 bis 1. Bei 0 (glatt) ist die Rauheit eine Spiegelreflexion. Bei 1 (vollständig rau) ist die Rauheit vollständig matt oder streut. Bei Anisotropie wird der Rauheitwert entlang der Achse verwendet. |
Anisotropie | Steuert die Anisotropierichtung des Materials (-1: Highlights sind an der Bi-Tangente ausgerichtet, 1: Highlights sind an der Tangente ausgerichtet). |
Normal | Verwendet die Oberflächennormale als Input. Die Normale wird entsprechend den Raumeigenschaften des Material-Stammknotens als Tangente oder Weltraum betrachtet. Dieser Input definiert die Schattierungsnormale pro Pixel. |
Tangente | Nimmt eine Oberflächen-Tangente als Input. Die Normale wird entsprechend den Raumeigenschaften des Material-Stammknotens als Tangente oder Weltraum betrachtet. Dieser Input definiert die Schattierungstangente pro Pixel. |
SSS MFP | Subsurface Scattering für Mittleren freien Pfad (MFP). Dies steuert die wahrgenommene Dichte des Materials und beeinflusst die Absorption und Streuung von Licht durch das Material. Genauer gesagt, definiert dieser Wert die durchschnittliche Entfernung in Zentimetern, bis ein Photon mit einem Materiepartikel interagiert. Diese Entfernung wird pro Farbkanal gesteuert. Der MFP interagiert direkt mit der Transmittanz und der Menge des innerhalb eines Slab gestreuten Lichts.
Dieser Input wird nur verwendet, wenn dem Material-Stammknoten kein Subsurface-Profil-Asset zugewiesen ist. |
SSS MFP Maßstab | Dieser Input skaliert den mittleren freien Pfadradius des Subsurface Scattering vom Subsurface-Profil auf einen Wert zwischen 0 und 1. |
SSS Phase Anisotropie | Ein positiver Wert verlängert die Phasenfunktion entlang der Lichtrichtung, was zu einer Vorwärtsstreuung führt. Ein negativer Wert verlängert die Funktion rückwärts zur Lichtrichtung und verursacht Rückwärtsstreuung. |
Emissionsfarbe | Steuert die Emissionsfarbe auf Materialoberflächen. |
Sekundäre Rauheit | Steuert die Rauheit einer sekundären Reflexionskeule. Bei 0 (glatt) ist die Rauheit eine Spiegelreflexion. Bei 1 (vollständig rau) ist die Rauheit vollständig matt oder streut. Dieser Input hat keinen Einfluss auf die streuende Rauheit. |
Sekundäres Rauheitsgewicht | Der Mischfaktor zwischen der primären und sekundären Reflexionskeule. Die erste Spiegelung mit Rauheit hat ein Gewicht von (1 - SecondRoughnessWeight). Werte gleich 0 rendern nur die Hauptkeule. 0,5 rendert eine 50-prozentige Mischung beider Rauheiten, und 1,0 rendert nur die sekundäre Keule. |
Fuzz-Rauheit | Steuert, wie rau die Fuzz-Ebene ist. Fuzz mit einer Rauheit von 0 ist glatt (glänzender) und 1 ist vollständig rau (matt). |
Fuzz-Menge | Bei einem Wert größer als 0 wird eine faserartige Schicht am Interface hinzugefügt, wodurch eine Farbreflektivität entsteht. Dies steuert die Menge an Fuzz, die auf eine Oberflächenebene angewendet wird. Wird normalerweise zur Erstellung von Textil-Materialien verwendet. |
Fuzz-Farbe | Definiert die Farbe der Fuzz-Ebene. |
Glanz-Dichte | Die logarithmische Darstellung der Mikrofacettendichte auf der Oberfläche eines Materials. Erfordert die Einstellung |
Glanz-UVs | Steuert die Position und den Maßstab von Glitzerpunkten auf der Oberfläche eines Materials. Erfordert die Einstellung |
Das Subsurface-Verhalten des Slabs wird durch die Eigenschaft Subsurface-Typ des Slabs definiert. Sie definiert das Streuungsmodell, das für den entsprechenden Platte verwendet wird. Es bietet eine explizite Steuerung, um das bestehende Legacy-Verhalten zu erreichen oder unterschiedliche Optiken zu erzielen.
Die verfügbaren Subsurface-Typen sind:
Umhüllung: Verwendet ein Umhüllungs-Beleuchtungsmodell, um Lichtstreuung zu simulieren. Das entspricht dem klassischen Subsurface-Schattierungsmodell.
Zweiseitige Umhüllung: Verwendet ein Umhüllungs-Beleuchtungsmodell auf beiden Seiten der Oberfläche, um Lichtstreuung zu simulieren. Das entspricht dem alten Schattierungsmodell „Zweiseitige Vegetation“
Diffusion: Verwendet das Diffusionsmodell (Bildschirmraum- oder Ray-Tracing), um die Lichtstreuung zu aktualisieren. Wenn ein SSS-Profil bereitgestellt wird, entspricht es dem alten Subsurface-Profil- Schattierungsmodell. Ansonsten kann der MFP direkt auf dem Slab gesteuert werden.
Einfaches Volumen: Verwendet eine Mischung aus dem Beer-Lambert-Modell für den Transmittanzteil und einem angepassten Modell für den Streuungsteil.
Für vertikal geschichtete Slabs ist nur der Subsurface-Typ Einfaches Volumen gültig. Liste der unterstützten Subsurface-Typen pro Ebene:
| Untere Ebene | Obere Ebenen |
|---|---|
Keiner Einfaches Volumen Lackierung Zweiseitige Umhüllung Diffusion | Keine Einfaches Volumen |
Je nach Plattform und Schattierungspfad ist der Subsurface-Typ „Diffusion“ möglicherweise nicht verfügbar. In solchen Fällen greift das System auf ein einfaches, nicht streuendes, diffuses Modell zurück. Diffusion wird nur in den Modi „Aufgeschobener Pfad“ und „Pfad-Tracing Pfad“ sowie auf den folgenden Plattformen unterstützt: Xbox One, Xbox Series S, Xbox Series X, PlayStation 4 und 5, PC DX11, PC DX12, Linux Vulkan und Mac OS. Low-End-Plattformen wie Mobilgeräte unterstützen keine Diffusionsmodelle. Am unteren Rand jedes Slab-Knotens zeigt ein Tag an, welches Streuungsmodell basierend auf der Topologie verwendet wird. Dieser Tag kann sich von dem in der Eigenschaft Subsurface-Typ angegebenen unterscheiden, wenn dieser Streuungstyp nicht mit der Topologie kompatibel ist.
Substrate-Material-Parametrisierung
Substrate verwendet eine F0 / Gestreute Albedo-Parameterisierung im Vergleich zum Nicht-Substrate-Pfad, der Basisfarbe / Glänzend / Metalligkeit verwendete. Diese Parametrisierung bietet mehr Flexibilität und gewährleistet gleichzeitig weiterhin die Energieeinsparung. Die Wählen des richtigen Wert für F0 mag jedoch auf den ersten Blick nicht intuitiv sein.
Als einfachen Leitfaden kannst du Materialien in zwei Gruppen einteilen:
Dielektrische Materialien: Dies sind Materialien mit einer Metalligkeit von 0, die in der Regel einen F0 Wert zwischen 0,02 und 0,06 im linearen Raum aufweisen. Edelsteine können im linearen Raum einen F0 Wert von bis zu 0,18 haben.
Leitermaterialien: Das sind Materialien mit einer Metalligkeit von 1. Sie haben im linearer Raum üblicherweise einen F0 Wert von mehr als 0,5 bis 1.
Dazwischen liegen Halbleitermaterialien, die in der realen Welt nur selten anzutreffen sind.
Diagramm aus Adobe Substances.
Nachflgend findest du eine Liste von F0 Werten für gängige Materialien:
Diese Liste stammt aus der Dritten Edition von Echtzeit-Rendering von Tomas Akenine-Moller, Eric Hains und Naty Hoffman.
| Material | F0 Linear | F0 sRGB | Farbe |
|---|---|---|---|
Wasser | 0,02 | 0,15 | |
Kunststoff / Glas (Niedrig) | 0,03 | 0,21 | |
Kunststoff (hoch) | 0,05 | 0,24 | |
Glas (High) / Rubin | 0,08 | 0,31 | |
Diamant | 0,17 | 0,45 | |
Eisen | 0,56, 0,57, 0,58 | 0,77, 0,78, 0,78 | |
Kupfer | 0,95, 0,64, 0,54 | 0,98, 0,82, 0,76 | |
Gold | 1,00, 0,71, 0,29 | 1,00, 0,86, 0,57 | |
Aluminium | 0,91, 0,92, 0,92 | 0,96, 0,96, 0,97 | |
Silber | 0,95, 0,93, 0,88 | 0,98, 0,97, 0,95 |
Materialvereinfachung
Materialvereinfachung findet statt, wenn eine der folgenden Beschränkungen nicht von einem Material erfüllt wird:
Für das Format Zusammensetzbarer GBuffer, wenn ein Material mehr als einen Abschluss hat.
Für das Format adaptive GBuffer, wenn ein Material mehr Absclüsse pro Pixel hat als die Projekt-/ Plattform-Einstellungen, oder wenn die Anzahl von Bytes pro Pixel die Projekt-Einstellungen überschreitet.
Unter Berücksichtigung dieser Parameter wird das Material vereinfacht, indem Platten mit Parametern überblenden werden, bis die Anforderungen erfüllt sind. Die Vereinfachungsgründe und die Details sind im Substrate-Panel sichtbar (Window > Substrate).
Bei Projekten / Plattformen, die das Zusammensetzbare GBuffer-Format verwenden, ist das endgültige Material gezwungen, eine einzige Funktion pro Pixel zu verwenden, was einem alten Schattierungsmodell entspricht. Diese Funktionen sind (in der Reihenfolge ihrer Priorität):
Fuzz
Subsurface Scattering (mit oder ohne einem Profil)
Trübung
Wenn für ein bestimmtes Pixel mehrere Funktionen zu gleicher Zeit aktiviert sind, wird nur die Funktion mit der höchsten Priorität verwendet. Beachte, dass die Anisotropie-Funktion unabhängig von den anderen Funktionen aktiviert werden kann.
Im folgenden Beispielmaterial lag das Substrat-Material außerhalb des Budgets und wurde entsprechend vereinfacht, wenn man sich das Substrate-Statistik-Panel im Material-Editor ansieht.
Substrate unterstützt mehrere visuelle Funktionen, die für jedes Platte aktiviert werden können (oder automatisch, wenn der Ausdrucksknoten SubstrateShadingModel verwendet wird). Diese Schattierungsmodelle umfassen:
F90
Fuzz
SSS-Effekte (SSS Profile, Umhüllt, Einfaches Volumen)
Trübung
Anisotropie
Glänzendes Profil
Reflexe
Bei Verwendung des Formats „Zusammensetzbarer GBuffer“ werden einige Funktionen nicht unterstützt. Dazu gehören:
F90
Streuungs-SSS mit MFP pro Pixel
Trübung
Reflexe
In diesem Fall fehlt die Funktion optisch im Material. Beachte, dass Glanz-LUT unterstützt wird, jedoch nur als ansichtsabhängiger Effekt approximiert wird.
Nachfolgend siehst du einen visuellen Vergleich dieser Funktionen zwischen den beiden GBuffer Formaten:
Aus Performance-Gründen werden diese Funktionen bei der Beleuchtungsbewertung auf Komplexitätssätze gemappt, die mit zunehmend höheren Bewertungskosten einhergehen:
Einfach: Standard-beleuchtetes Material (farbig, streuen und glänzend, Rauheit)
Einfach: F90 Farbe, Fuzz, SSS-Effekte (Profile, Umhüllt und Einfaches Volumenn verwenden MFP), Clear Coat.
Komplex: Anisotropie, Spiegelndes Profil, Auge und Haare
Komplex Spezial: Reflexe
Substrate-Material-Knoten
Du kannst die folgenden Knoten-Typen verwenden, um ein Substrate-Material zu erstellen:
| Knoten-Typ | Beschreibung |
|---|---|
Diese Knoten repräsentieren die meisten Arten von Oberflächen, von einfachen Materialien bis hin zu komplexeren Dingen wie Haare, Augen oder Wasser. | |
Diese Knoten mischen und schichten mehrere Substrate-Slab-BSDFs, um komplexe und abwechslungsreiche Oberflächen zu erstellen. | |
Diese Knoten übersetzen gewöhnliche Materialtypen für die Verwendung mit Substrate, etwa die Erstellung einer beschichteten Ebene oder das alte Standard-Material-Schattierungsmodell von Unreal Engine. | |
Diese Knoten definieren eine Material-Domain für ein Substrate-Material und sind direkt analog zu ihren alten Material-Domain-Namensgebern. | |
Diese Knoten werden verwendet, um einige Konvertierungen innerhalb des Materials durchzuführen, etwa das Mapping der Transmittanz zum mittleren freien Pfad für einen Substrate-Slab. |
Substrate-BSDF-Knoten
Substrate BSDF-Knoten (Bidirectional Scattering Distribution Function) werden verwendet, um die meisten Arten von Oberflächen zu repräsentieren; sie steuern das visuelle Erscheinungsbild der von dir erstellten Materialien und legen ihre Domäne und ihr Schattierungsmodell automatisch entsprechend fest. Das Ziel besteht darin, diese Aspekte nicht mehr manuell über das Details-Panel am Material-Stammknoten festlegen zu müssen.
Substrate umfasst die folgenden BSDFs:
Der Slabs-BSDF ist der primäre Knoten für die Erstellung in Substrate und kann mit anderen Slabs überlagert werden. Die anderen BSDFs sind für spezialisierte Anwendungsfälle gedacht und müssen allein verwendet werden, ohne sich mit anderen BSDFs zu vermischen.
| Substrate-BSDF-Knoten | Beschreibung |
|---|---|
Substrate Slab-BSDF | Die auf Prinzipien basierende Darstellung eines Materie-Slabs, die mehrere Komponenten vereint: Diffusion, Spiegelung, Trübung, Textilfasern und Anisotropie. Es kann Effekte wie undurchsichtiges Subsurface Scattering oder durchscheinende Streuung und durchscheinende Transmittanz von Subsurface Scattering rendern. |
Substrate Augen-BSDF | Ein BDFS speziell für das Rendering von Augen-Materialien mit Substrate. Dies umfasst spezifische Inputs für Hornhaut und Iris. |
Substrate Haar-BSDF | Ein BDFS speziell für das Rendering von Haarmaterialien mit Substrate. |
Substrate Einfacher Clear Coat | Bietet eine einfache und schnelle Möglichkeit, ein Material mit einer klaren Deckschicht zu rendern. Dieser Knoten verwendet das Substrate Slab-BSDF im Hintergrund, vereinfacht aber den Workflow für Clear Coat Rendering. Er ist für das Rendern von Legacy-Clear-Coat-Materialien optimiert. |
Substrate Einzelschicht-Wasser-BSDF | Eine BSDF zum Rendering eines Einzelschicht-Wassermaterials, das hauptsächlich im Wasser-System verwendet wird. |
Substrate Unbeleuchtet-BSDF | Ein BSDF, mit dem unbeleuchtete Elemente mit einer farbigen emissiven Luminanz gerendert werden. Dieser Substrate-Knoten ersetzt die alte Graustufen-Opazität mit farbiger Transmittanz. Wenn du einen unbeleuchteten Slab mischen musst, verwende einen gewöhnlichen Substrate-Slab, wobei nur der Emissionsfarbe-Input verwendet wird. Der Operator „Deckkraft-Gewicht“ kann verwendet werden. |
Substrate Volumetrische Nebel-Wolke-BSDF | Ein BSDF, das zur Darstellung eines beteiligten Mediums verwendet wird. Dieser Knoten wird verwendet, um volumetrische Wolken und heterogene Volumen zu rendern. |
Substrate-Operator-Knoten
Substrate-Operator-Knoten mischen oder schichten mehrere Substrate-Slabs, um komplexe und abwechslungsreiche Oberflächen zu erstellen. Wenn der Substrate-Slab ein Stück Materie darstellt, bieten Operatoren Möglichkeiten, diese Stücke zu kombinieren.
Die folgenden Substrate-Operatoren stehen zur Auswahl:
Substrate-Operatoren funktionieren nicht mit allen Substrate-BSDFs. Nur Substrate Slab-BSDF und Substrate Einfacher Clear Coat können diese Operator-Knoten verwenden.
| Substrate-Operator-Knoten | Beschreibung |
|---|---|
Substrate Deckkraft-Gewicht | Dieser Operator nimmt Input von einem Slab und steuert den Grad der Deckkraft, wobei das Gewicht den Grad der Deckkraft hat. Durch die Gewichtsreduzierung wird die Deckkraft des Slabs verringert, sodass du die darunter liegende Materie durchscheinen siehst. Das Gewicht ähnelt dem Opazitäts-Input für den Stammknoten im Legacy-Material. Sie kann beispielsweise verwendet werden, um Oberflächen bei Verwendung eines durchscheinenden Überblendmodus durchscheinend zu machen oder um die Sichtbarkeit einer Clear Coat-Deckschicht zu verringern. |
Substrate Horizontale Überblendung | Dieser Operator nimmt Input von zwei Slabs entgegen: einem Hintergrund und einem Vordergrund. Der Mix-Input steuert, wie stark diese beiden Slabs mithilfe einer linearen Interpolation miteinander gemischt werden. Dies kann für einen weichen Übergang zwischen Slabs über einer Oberfläche verwendet werden. |
Substrate Vertikale Ebene | Dieser Operator nimmt Input von zwei Slabs an: einer oberen und einer unteren Ebene. Die obere Slab liegt über der unteren Slab, wobei das Aussehen des unteren Slabs durch die Eigenschaften des oberen Slabs beeinflusst wird. Benutze den Input „Obere Stärke“, um die Dicke der oberen Schicht einzustellen. Dieser Operator eignet sich hervorragend zum Erstellen von Autolacken, Holzlacken und Nässe auf einer Oberfläche. |
Substrate Hinzufügen | Dieser Operator nimmt Input von zwei Slabs und fügt sie hinzu. Das erzeugte Material ist physikalisch nicht plausibel, da es mehr Energie von der Oberfläche abgibt als aufnimmt. Dieser Knoten sollte nach Möglichkeit vermieden werden. |
Substrate auswählen | Dieser Operator nimmt Input von zwei Substrate Materialien-Pfaden entgegen und wählt einen einzelnen aus. Für beide Pfade ist Parameter Überblenden aktiviert, sodass am Ende nur ein Platten-Material verbleibt. Es kann verwendet werden, um stochastisch Platten mit und ohne Subsurface-Profile auszuwählen, beispielsweise unter Verwendung von Blaurauschen. Dies ist für die Performance interessant, da es eine einzige Platte als Output erzwingt, sodass während der Beleuchtungsdurchläufe eine einzige Schließung pro Pixel ausgewertet wird. |
Operator-Knoten enthalten eine Option zum Parameter-Überblenden ihrer Input-Platten zu einer einzigen Platte, wenn die Option Parameter-Blending verwenden aktiviert ist. Da Substrate-Operatoren komplexe Materialoptiken durch Mischen und Überlagern von Slabs erzeugen können, können ihre Kosten zur Laufzeit (hauptsächlich aufgrund der Beleuchtungsauswertung) die Performance beeinträchtigen. Parameter-Blending ist eine Optimierung, die visuelle Genauigkeit und teure Beleuchtung gegen Laufzeit-Performance und weniger kostspielige Beleuchtung eintauscht.
Weitere Informationen zu dieser Parameter-Blending-Optimierung findest du im Abschnitt Parameter-Blending auf dieser Seite.
Substrate Deckkraft-Gewicht
Der Operator Substrate Deckkraft-Gewicht steuert das Verhältnis von zwei Slabs bei einer vertikalen Operation. Der Input Gewicht bestimmt die Deckkraft dieses Materials, wenn es mit dem Substrate-Operator Vertikale Ebene kombiniert wird (wie im folgenden Beispiel). Du kannst den Operator auch nutzen, um durchscheinende Oberflächen zu erzeugen, wenn du Alpha als Deckkraft oder Alpha als Opazität verwendest, ähnlich wie der durchscheinende Überblendmodus die Opazität verwendet.
Das obige Diagramm verwendet den Operator Substrate Deckkraft-Gewicht. Das Gewicht bestimmt den Grad der Deckkraft, die auf den unteren Slab angewendet wird. Ein Gewicht von 1 ist vollständig undurchsichtig und blockiert das grüne Texturmuster. 0,5 ist 50 % transparent, mischt die Farben der beiden Materialien und zeigt das Texturmuster. 0 ist komplett transparent und zeigt nur das grüne Texturmuster.
Substrate Horizontale Ebene
Der Substrate-Operator Horizontale Ebene mischt zwei Slabs, von denen einer den Hintergrund und der andere den Vordergrund repräsentiert. Der Mix-Input steuert das Mischungsverhältnis mit linearer Interpolation.
Der Hintergrund-Input ist vollständig sichtbar, wenn er den Wert 0 hat. Der Vordergrund ist vollständig sichtbar, wenn er gleich 1 ist. Bei einem Mischungsverhältnis von 0,5 werden die Slabs miteinander gemischt und die Mischung wird pro Pixel bewertet. Der Mix-Input kann Texturen verwenden, um die Mischungsverhältnisse zu steuern, wie im folgenden Beispiel.
Substrate Vertikale Ebene
Der Substrate-Operator Vertikale Ebene legt den oberen Slab und den unteren Slab übereinander. Dieser Knoten berücksichtigt die Dicke der oberen Ebene, um eine physikalisch korrekte Transmittanz und Streuung anzuwenden, ähnlich einer Beschichtungs-Operation, bei der die obere Ebene die untere Ebene bedeckt. Das Aussehen des unteren Slab hängt von den Eigenschaften des oberen Slab ab. Wenn die an den oberen Input übergebene BSDF vollständig undurchsichtig ist, ist der untere Slab überhaupt nicht sichtbar.
Vertikale Ebenen sind besonders in Situationen nützlich, in denen eine transparente oder halbtransparente obere Ebene über einer undurchsichtigen unteren Ebene benötigt wird. Beispiele umfassen Autolack, behandeltes Holz oder Nässe auf der Oberfläche, etwa Wasserpfützen.
Substrate Hinzufügen
Der Operator Substrate Hinzufügen kombiniert zwei Slabs und gibt das Ergebnis aus. Dieser Operator ist physikalisch nicht plausibel, da er ein Material erzeugen kann, bei dem die von der Oberfläche ausgehende Energie die eintreffende Energie übersteigt. Er ist nützlich, wenn die künstlerische Gestaltung wichtiger ist als physikalische Plausibilität. Um physikalisch akkurate Oberflächen zu erhalten, solltest du diesen Operator jedoch vermeiden.
Substrate-Baustein-Knoten
Die Substrate Baustein-Knoten sind ein Set von Materialfunktionen, die Verschiebungen für einige häufige Anwendungsfälle bieten. Da es sich um Materialfunktionen handelt, kannst du diese direkt öffnen und untersuchen.
Die folgenden Substrate-Bausteine stehen zur Auswahl:
| Substrate-Baustein-Knoten | Beschreibung |
|---|---|
Substrate Beschichtete Ebene | Eine Materialfunktion, die ein beschichtetes Material erstellt, das aus zwei übereinander geschichteten Slabs besteht. Es zeigt dir benutzerfreundliche Parameter zur Steuerung von Interface und Absorption der Beschichtung. |
Substrate Standardoberfläche undurchsichtig | Eine Materialfunktion, die ein Über-Shader-ähnliches Substrate-Material mit einer nutzerfreundlichen Parameterisierung für undurchsichtige Oberflächen erstellt. Die Parameterisierung basiert auf Standard-Branchenvokabular und -konzepten. |
Substrate Standardoberfläche durchscheinend | Eine Materialfunktion, die ein Über-Shader-ähnliches Substrate-Material mit einer nutzerfreundlichen Parameterisierung für durchscheinende Oberflächen erstellt. Die Parameterisierung basiert auf Standard-Branchenvokabular und -konzepten. |
Substrate UE4 Standardschattierung | Eine Materialfunktion, die das Standard-Schattierungsmodell mit Substrate für diffuse, metallische und glänzend Parameterisierung repliziert, die in Nicht-Substrate-Materialien verwendet werden. |
Substrate UE5 Unbeleuchtete Schattierung | Eine Materialfunktion, die das unbeleuchtete Schattierungsmodell von UE4 mit Substrate nachbildet. |
Substrate Extras-Knoten
Die Substrate Extras-Knoten spezifizieren den Materialtyp und seine Funktion, etwa die Einstellung des Substrate-Materials als Aufkleber oder Lichtfunktion. Diese Knoten sind direkt analog zu Nicht-Substrate-Materialien, denen sie als Teil ihrer Material-Domain zugewiesen wurden.
Die folgenden Substrate-Extras stehen zur Auswahl:
Diese Knoten sind monolithisch und müssen isoliert verwendet werden. Sie sind nicht mit Substrate Operators kompatibel.
Es ist eine gute Angewohnheit, diese Knoten am Ende des Materialdiagramms zu platzieren, direkt bevor man sie mit dem Oberflächenmaterial-Input verbindet.
| Substrate Extras-Knoten | Beschreibung |
|---|---|
Substrate Konvertieren in Aufkleber | Jedes Materialdiagramm kann als Aufkleber verwendet werden. Dieser Knoten gibt an, dass das Material konvertiert und nur als Aufkleber-Material verwendet wird. |
Substrate Lichtfunktion | Dieser Knoten gibt an, dass das Material nur als Lichtfunktion verwendet wird. Er muss isoliert eingesetzt werden. |
Substrate Nachbearbeitung | Dieser Knoten gibt an, dass das Material nur als Nachbearbeitungsmaterial verwendet wird. Er muss isoliert eingesetzt werden. |
Substrate Benutzeroberfläche | Dieser Knoten legt fest, dass das Material nur als Benutzeroberflächen-Element verwendet wird, zum Beispiel Elemente, die für die Verwendung mit UMG UI Designer entworfen wurden. Er muss isoliert eingesetzt werden. |
Wenn du zum Beispiel den Knoten Substrate Konvertieren in Aufkleber verwendest, kann jedes beliebige Substrate-Material als Aufklebermaterial für Mesh-Aufkleber und Aufkleber-Actors in der Szene verwendet werden.
Extras-Knoten legen automatisch die Material-Domain fest, wenn sie mit dem Oberflächenmaterial-Input des Material-Stammknotens verbunden werden. Einige Extras-Knoten erfordern eine Änderung des Überblendmodus, um den Output zu unterstützen.
Wenn du den Knoten Substrate Konvertieren in Aufkleber verwendest, musst du den Überblendmodus auf Durchscheinend graue Transmittanz, Farbige Transmittanz, Durchscheinend farbige Transmittanz oder AlphaComposite (Vormultipliziertes Alpha) einstellen. Ansonsten wird im Stats-Panel des Material-Editors ein Fehler angezeigt.
Substrate-Helferknoten
Die Substrate-Helferknoten sind eine Reihe von Knoten und Materialfunktionen, mit denen bestimmte Konvertierungen durchgeführt oder Funktionen von Legacy-Materialien realisiert werden können.
| Substrate-Helferknoten | Beschreibung |
|---|---|
Substrate Flip Flop | Steuert die Oberflächenreflexion basierend auf dem Einfallswinkel. Er erlaubt die Interpolation einer zur Normalen gehörenden Farbe (F0) zu einer Farbe bei tiefem Winkel (F90), basierend auf dem Blickwinkel, und steuert die Interpolationsgeschwindigkeit mit dem Falloff-Parameter. |
Substrate Trübung zu sekundärer Rauheit | Berechnet die Rauheit einer sekundären Spiegelungskeule aus der Rauheit und Trübung der Grundfläche. Diese Parametrisierung stellt sicher, dass die Trübung physikalisch plausibel ist und einfacher zu erstellen ist. |
Substrate IOR-zu-F0 | Konvertiert einen dielektrischen IOR in einen F0-Wert. |
Substrate Metallizität-zu-DiffuseColorF0 | Konvertiert eine Metalligkeit-Parameterisierung (BaseColor / Spiegelnd / Metallic) in eine DiffuseAlbedo-/F0-Parameterisierung. |
Substrate Drehung zu Tangente | Wandelt einen Drehung in einen Tangentenvektor um. |
Substrate Dünnfilm | Berechnet die resultierenden Material-Spiegelparameter F0 und F90 entsprechend der Dünnfilmparameter. |
Substrate Transmittanz-zu-Mittlerer-freier-Pfad | Konvertiert eine Transmittanzfarbe, die einem Slab aus teilnehmenden Medien entspricht, die senkrecht zu ihrer Oberfläche betrachtet wird, in einen mittleren freien Pfad. Dieser Knoten ist direkt dem Slab BSDF SSS MPF Input zugeordnet. |
Substrate Ansichtsabhängige Deckkraft | Passt die Deckkraft basierend auf dem Einfallswinkel der Ansicht an. Dieser Knoten ist nützlich, um eine Ebene zu mischen, die dick genug ist, um einen ansichtsabhängigen Effekt zu implizieren. Beispielsweise würden große Staubkörner bei einem streifenden Winkel eine stärkere Okklusion aufweisen als bei einem einfallenden Winkel. |
Zusätzliche Hinweise zu Substrate-Knoten
Substrate Aufkleber-Materialien
Substrate-Aufkleber nutzen aktuell dieselben Funktionen wie der alte Überblendmodus-Pfad.
Zukünftige Versionen von Substrate-Aufklebern sollen einen robusteren Funktionsumfang bieten, ähnlich wie andere bereits in Substrate verfügbare Funktionen, beispielsweise Ebenen-durchscheinende Slabs für Dinge wie Wasser, Blut und Schleim. Dazu gehören etwa Ebenen, die je nach Dicke erodieren können, etwa Kratzer im Auto, Bodenstufen oder Reifenspuren.
Substrate Schattierungsmodell-Knoten
Wenn du ein zuvor erstelltes Material öffnest, nachdem Substrate für dein Projekt aktiviert wurde, wird das Material automatisch konvertiert, um seine Slabs zu verwenden. Alle bestehenden Inputs werden in einen Substrate Schattierungsmodell-Knoten eingespeist.
Vermeide es, diesen Knoten bei der Erstellung neuer Substrate-Materialien manuell hinzuzufügen oder zu verwenden.
Substrate Stats-Panel
Das Substrate Stats-Panel ist im Material-Editor unter dem Materialdiagramm verfügbar.
Das Substrate-Panel zeigt Werte zum Material, zur Topologie, seinen Funktionen und zur Vereinfachung an.
Parameter-Überblenden mit Operatoren
Die Verwendung mehrerer BSDFs (Bidirectional Scattering Distribution Functions) pro Pixel verlangsamt den Rendering-Prozess proportional zu ihrer Anzahl im Materialdiagramm. Die Bewertung der Beleuchtung für zwei BSDFs dauert doppelt so lange wie für eine einzelne. Dies gilt sowohl für undurchsichtige als auch für durchscheinende Oberflächen.
Operator-Knoten umfassen ein Kontrollkästchen Parameter-Überblendung verwenden, mit dem versucht wird, die Performance und den Speicherbedarf des Materials zu optimieren, während das Aussehen aller Misch- und Ebenen-Operationen im Diagramm erhalten bleibt. Nur der Operator-Knoten ganz rechts vor dem Material-Stammknoten muss diese Einstellung aktiviert haben. Alle anderen Knoten im Diagramm wenden automatisch Parameter-Überblendung an.
Parameter-Überblenden ist eine gute Fallback-Option, wenn die Performance mehrerer Slabs in einem Material Sorgen bereitet. Wenn aktiviert, werden zwei Slabs zu einem einzigen Slab zusammengeführt, der nur eine einzige Beleuchtung benötigt. Diese Zusammenführung verbraucht viel weniger Speicher als zwei individuelle Slabs.
Die folgenden Beispiel stammen aus den Inhaltsbeispielen Substrate-Ebenen ohne und mit aktivierter Option Parameter-Überblendung verwenden.
Dieses Material (M_Substrate_ShaderBall_IceRocks) verwendet zwei BSDFs. Die linke Seite ist ohne Überblendung, die rechte Seite verwendet Parameter-Überblendung.
Dies ist ein komplexeres Material (M_Substrate_ShaderBall_AnisoOverSSS), das vier Slabs mithilfe von zwei Vertikale-Ebene-Operatoren und einem einzigen Deckkraft-Gewicht-Operator miteinander verbindet. Das Material hat Speicherkosten von 108 Bytes pro Pixel. Wenn die Parameter-Überblendung aktiviert ist, verringert sich das Überblenden bei allen Operatoren auf 28 Bytes pro Pixel. Das linke Material ist ohne Überblenden und das rechte verwendet Parameter-Überblendung.
Neben der Parameter-Überblendung in Operatoren-Knoten kannst du einen der folgenden Workflows verwenden, um ähnliche Ergebnisse zu erzielen:
Mische DiffuseAlbedo, F0, F90, Rauheit und andere Attribute manuell im Diagramm. Leite alle Attribute in einen einzigen Slab weiter, der mit dem Oberflächenmaterial-Input verbunden ist. Dieser Ansatz kann in Einzelfällen gut funktionieren, wird jedoch bei einer großen Bibliothek mit komplexen Materialien schnell unüberschaubar.
Benutze den diagrammbasierten Arbeitsablauf Geschichtete Materialien. Da dieser Materialfunktionen zur Wiederverwendung von Arbeit verwendet, skaliert dies besser als die erste Option.
Auf Plattformen mit geringerer Leistung, wie z. B. Mobilgeräten, aktiviert der Compiler automatisch die Parameter-Überblendung, um die Performance zu verbessern. Auf Intermediate-Plattformen wird die Parameter-Überblendung schrittweise auf den unteren Ebenen eines Materials eingeführt, um die angestrebten Performance- und Speicheranforderungen einzuhalten.
Metallizität und Spiegelungsgrad
Die von Substrate verwendete Parameterisierung unterscheidet sich vom DefaultLit-Schattierungsmodell in Nicht-Substrate-Materialien (oder Vorgänger-Materialien). Es gibt keinen Metallizität-Input mehr. Diese Parameterisierung versucht, abstrakte Werte (wie Metallizität und Spiegelnd) zu beseitigen und geht zu physikalischen Eigenschaften mit Einheiten aus der realen Welt über.
Die Reflexionseigenschaften und der Speigelungsgrad von Substrate-Materialien werden durch drei Attribute definiert: DiffuseAlbedo, F0 und F90. Substrate erzwingt automatisch Energieeinsparungen und stellt sicher, dass die spiegelnde Oberfläche und das Medium keine Energie hinzufügen. Daher gilt: Je höher F0 wird, desto weniger sichtbar ist der diffuse Beitrag.
Metallizität wird mithilfe des Substrate Metallizität-zu-DiffuseAlbedo-F0 Helfer-Knoten emuliert. Es nimmt die Werte für Grundfarbe, Spiegelung und Metallizität als Inputs und wandelt sie in Werte um, die auf Diffuse Albedo und F0 auf dem Substrate-Slab abgebildet werden.
Mit den Inputs EdgeColor oder F90 lassen sich vielfältige komplexe diffuse und spiegelnde Reaktionen von Materialien auf Licht erzielen. Beispielsweise eine rote Kugel mit cyanfarbenen bis gelben senkrecht-tangentialen Spiegelreflexionen.
Substrate FlipFlop-Helfer-Knoten sind nützlich, um eine normalenbasierte Spiegelungsfärbung zu erzielen. Es steuert die Spiegelungsfarbe von F0 und F90 als Funktion von NoV mit einstellbarem Falloff-Übergang.
Raue Refraktion
Substrate unterstützt eine raue Refraktion durch durchscheinende Objekte und geschichtete, undurchsichtige Materialien mit einer durchscheinenden oberen Ebene. Die Unschärfe des Szenenhintergrunds sowie die Entfernung zum gebrochenen Objekt werden anhand der Rauheit des Primärmaterials berechnet, wenn du Verzerrung/Brechung sowie die Entfernung zum gebrochenen Objekt verwendest.
Durchscheinende raue Refraktion
Um ein durchscheinendes Material mit rauer Refraktion zu erstellen, lege die folgenden Eigenschaften im Details-Panel fest.
Überblendmodus: TranslucentColoredTransmittance, TranslucentGreyTransmittance, Oder ColoredTransmittanceOnly.
Refraktionsmethode: Index der Brechung (IOR), Pixel-Normal-Versatz oder 2D-Versatz.
Übergabe von Werten an Refraktion, Rauheit und SSS MFP. Das folgende Diagramm erzeugt ein vereinfachtes Milchglasergebnis, wenn die Rauheit größer als 0 ist. Ein hoher SSS MFP- Wert wird verwendet, um ein vollständig transparentes Material zu erstellen, während der IOR von 1,514 dem von Glas entspricht.
In den folgenden Beispielen werden die Objekte hinter dem Glas mit zunehmendem Wert für Rauheit (von links nach rechts 0, 0,2 und 0,6) immer unschärfer.
Das Weichzeichnen durch grobe Refraktion verwendet eine Annäherung, um die Tiefe hinter durchscheinenden Elementen in der Szene zu berücksichtigen.
Undurchsichtige raue Refraktion
Substrate Beschichtungsebenen können die darunter liegenden Schichten weichzeichnen, basierend auf der Rauheit und Dicke der oberen Ebene. Dieser Typ der Refraktion kostet mehr Performance und muss für das Projekt in den Projekt-Einstellungen unter der Kategorie Engine > Rendering aktiviert werden. Markiere das Kontrollkästchen für Substrate Undurchsichtiges Material raue Refraktion, um diese Funktion einzuschalten.
Das folgende Diagramm zeigt ein Beispiel für die Verwendung von undurchsichtigem Material mit rauer Refraktion unter Verwendung eines vertikal geschichteten Materials mit einer klaren Beschichtung auf einem undurchsichtigen Schachbrettmuster.
Die Parameter Rauheit und Dicke bestimmen die Stärke des Weichzeichnens, das auf die unterste Material-Ebene angewendet wird. Die Erhöhung eines der beiden Werte erhöht den Unschärfegrad der Refraktion.
Dies ist in den folgenden Beispielen zu sehen, wo die Clear-Coat-Deckschicht auf der linken Seite eine Rauheit und Dicke von 0,1 aufweist. Das Beispiel rechts hat eine Rauheit von 0,8 und eine Dicke von 6, wodurch die untere Ebene unscharf wird.
Substrate Ebenendicke
Die Dicke der unteren Ebene ist implizit auf 0,01 Zentimeter fixiert.
Für undurchsichtige Oberflächen (Oberflächen, durch die man nicht blicken kann) ist diese Dicke nicht relevant.
Für durchscheinende Oberflächen (Oberflächen, durch die man blicken kann) kannst du den Knoten Transmittanz zu MFP verwenden, wo die gewünschte Transmittanz für eine bestimmte Dicke angegeben wird.
Für dünne Oberflächen (Oberflächen mit einer Dicke, die aber zu dünn sind, um mit Geometrie modelliert zu werden) kann die Option „Ist dünne Oberfläche“ im Material aktiviert werden. Die Dicke der untersten Ebene wird dann im Stammknoten festgelegt.
Substrate Material-Instanz überschreiben
Es ist möglich, bestimmte Materialeigenschaften einer Material-Instanz zu überschreiben (Schattierungsmodell, Spiegelungsprofile usw.). Diese Überschreibungen haben einige Einschränkungen:
Die Überschreibung des Schattierungsmodells ist nur verfügbar, wenn das Material ausschließlich SubstrateShadingModel-Knoten enthält. Wenn das Material Slabs enthält, ist die Überschreiben-Option nicht verfügbar.
Die Überschreibung des Spiegelungsprofils ist nur verfügbar, wenn ein Slab ein Spiegelungsprofil enthält. Wenn eine Überschreibung angegeben wird, überschreibt diese alle Spiegelungsprofile der Slabs (sofern vorhanden).
Subsurface Scattering und beteiligte Medien
Ein Substrate-Slab enthält beteiligte Medien und kann zur Simulation verschiedener volumetrischer Erscheinungsbilder verwendet werden.
Wenn du zum Beispiel nur ein undurchsichtiges Material renderst und sich am unteren Ende der Materialtopologie ein Slab befindet, wird dieser für das Subsurface Scattering berücksichtigt. Dabei sind zwei Dinge zu beachten:
Wenn einem Slab im Details-Panel des Materials ein Subsurface-Profil zugewiesen wurde, wird das Profil pro Pixel verwendet. Beachte, dass Subsurface-Profile nicht zusammensetzbar sind.
Ist kein Subsurface-Profil zugewiesen, wird die Streuung über die Eigenschaften DiffuseAlbedo und SSS MPF des Slabs bestimmt. Diese Eigenschaften können überblendet werden.
Der MFP (oder mittlere freie Pfad) des Subsurface Scattering ist die Entfernung (in Zentimetern), die verschiedene Wellenlängen des Lichts durch ein Medium zurücklegen, bevor sie auf eine Kollision treffen. Das folgende Beispiel zeigt eine DiffuseAlbedo (weiß) und einen SSS MFP (rot) skaliert von 0 auf 1, von links nach rechts.
Jeder Slab, der sich nicht am Boden eines undurchsichtigen Materials befindet oder in einem durchscheinenden Material verwendet wird, wird für eine volumetrische Darstellung berücksichtigt, die sich ebenfalls auf die Attribute DiffuseAlbedo und SSS MFP stützt. Die DiffuseAlbedo repräsentiert die Basisfarbe des Mediums und berücksichtigt einfache und mehrfache Streuung.
Das Attribut SSS MFP ist eine Möglichkeit, um die Durchsichtigkeit des Mediums für eine Ansicht senkrecht zu einer Oberfläche zu steuern – es repräsentiert, wie sichtbar die Oberfläche darunter ist. Die Diffuse Farbe repräsentiert die Menge der Lichtstreuung und berücksichtigt auch die MFP-Distanz.
Beispiele für ein Material mit einer Transmittanzfarbe, die von links nach rechts von Schwarz bis Blau reicht, und einem DiffuseAlbedo-Bereich von Schwarz bis Weiß von unten nach oben.
Das vertikale Schichten von Slabs übereinander ähnelt einem Beschichtungsvorgang. Die Sichtbarkeit des unteren Slabs hängt von der Durchsichtigkeit des oberen Slabs ab. Es ist möglich, die Deckkraft des oberen Slabs (wie am Rand einer Wasserpfütze auf einer Oberfläche) zu reduzieren, damit sie nach und nach verschwindet. Du kannst dies mithilfe eines Operator-Knotens Deckkraft-Gewicht erreichen, der analog zum Alpha-Blending ist.
Beispiele für ein Material mit einer Transmittanz, die von links nach rechts von Schwarz bis Blau reicht, und einer Deckkraft, die von unten nach oben von 0 bis 1 reicht.
Um eine bestimmte Transmittanz oder Streuungsfarbe zu erreichen, solltest du den Helfer-Knoten Substrate Transmittanz-zu-Mittlerer-freier-Pfad verwenden. Der MFP wird für die TransmittanceColor abgeleitet, um bei normalem Einfall übereinzustimmen – wenn die Oberfläche senkrecht entlang der Normalen betrachtet wird.
Das folgende Beispiel zeigt ein blaues Subsurface Scattering auf einem undurchsichtigen rosa Material, wo der SSS MFP von der Transmittanzfarbe abgeleitet wird.
Authoring-Empfehlung:
Der mittlere freie Pfad (MFP) beschreibt das gleiche Lichtverhalten für durchscheinende oder undurchsichtige Materialien mit Subsurface Scattering: den mittleren Weg innerhalb eines Mediums, bevor Licht mit Materie in Wechselwirkung tritt und entweder absorbiert oder gestreut wird. Es kann jedoch interessant sein, dies für verschiedene Anwendungsfälle unterschiedlich zu gestalten.
Bei durchscheinenden (optisch dünnen, transparenten) Oberflächen wird davon abgeraten, MFP direkt zu steuern, um eine bestimmte Transmissionsfarbe zu erzielen, da MFP keine Farbe ist, sondern ein Maß für den Lichtdurchgang. Es wird stattdessen empfohlen, den Knoten Transmittanz-zu-Mittlerer-freier-Pfad zu verwenden.
Für Oberflächen mit Subsurface Scattering (optisch dicht, undurchsichtig) kann der MFP direkt erstellt werden. In diesem Fall entspricht er in etwa der Entfernung in Zentimetern, um die das Licht für jede seiner Komponenten gestreut wird.
Deckkraft vs. Transmittanz
Deckkraft definiert die Präsenz von Material und kann als "Maske" bezeichnet werden, die definiert, wo und wie stark das Material präsent ist.
0 bedeutet, es gibt keine Deckkraft: Die Ebene ist nicht sichtbar.
1 bedeutet vollständige Deckkraft: Die Ebene bedeckt die Oberfläche vollständig.
Materialien können durch Anpassung ihrer Deckkraft kombiniert werden. In Substrate wird die Deckkraft mit dem Knoten Deckkraft-Gewicht gesteuert.
Transmittanz definiert, wie das Licht mit dem Material interagiert: wie viel Licht durchscheint.
0 bedeutet, kein Licht wird durchgelassen: Das Material ist vollständig undurchsichtig.
1 bedeutet, Licht wird vollständig durchgelassen: Das Material nimmt kein Licht auf und du kannst vollständig durchsehen.
In Substrate wird die Transmittanz durch den Input Mittlerer freier Pfad auf dem Slab gesteuert. Mittlerer freier Pfad (MFP) definiert die durchschnittliche Entfernung, bei der ein Lichtstrahl mit der Materie interagiert.
Ein MFP von 0 bedeutet, dass ein Lichtstrahl immer auf die Materie trifft und nicht durch das Material dringt. Dies entspricht einer Transmittanz von 0.
Bei einem MFP mit unendlichen Energien trifft ein Lichtstrahl niemals auf die Materie und durchdringt sie daher. Dies entspricht einer Transmittanz von 1.
Zur Vereinfachung steht ein Transmittanz-zu-MFP-Knoten zur Verfügung, der eine bestimmte Transmittanzfarbe, die bei einer bestimmten Tiefe erreicht wird, in einen mittleren freien Pfad übersetzt.
Die Deckkraft hat nur einen „Graustufen“-Effekt auf das Aussehen des Materials (mehr oder weniger Material ist sichtbar). Andererseits kann die Transmittanz die Farbe des durchgelassenen Lichts basierend auf ihrem MFP-Wert ändern. Bestimmte Farben werden absorbiert, während andere durchgelassen werden, wodurch eine farbige Transmission entsteht. Um das zu erreichen, muss der Überblendmodus auf Durchscheinend farbige Transmittanz gesetzt werden. Für eine bessere Performance solltest du vielleicht auf graue Transmission mit Durchscheinend graue Transmittanz zurückgreifen.
Transluzenz und Überblendmodi
Substrate bietet robustere Optionen für die Schattierung durchscheinender Oberflächen als dies mit herkömmlichen Nicht-Substrate-Materialien möglich ist. Die Liste der Substrate Überblendmodi ergibt nun mehr Sinn, wenn man bedenkt, dass eine Oberfläche aus Materie besteht (einer Substrate-Slab).
Um ein durchscheinendes Material zu erstellen:
Wähle einen Überblendmodus, der Transluzenz unterstützt.
Durchscheinend farbige Transmittanz
Durchscheinend graue Transmittanz
Nur farbige Transmittanz
Wähle den Material-Stammknoten aus und wähle dann im Details-Panel einen Beleuchtungsmodus aus. Wähle zwischen:
Oberflächen-Vorwärts-Schattierung
Oberflächen-Transluzenzvolumen – diese Option unterstützt Reflexionen auf der Oberfläche.
Volumetrisch nicht direktional – kostengünstiger in der Nutzung, reflektiert jedoch kein Licht.
Nachfolgend siehst du ein Beispiel für die Einrichtung eines durchscheinenden Substrate-Materials. Sein Überblendmodus ist auf Durchscheinend farbige Transmittanz eingestellt und verwendet den Modus Oberflächen-Vorwärts-Schattierung. Dafür wird ein einziger Slab verwendet, der an den Oberflächenmaterial-Pin des Material-Stammknotens übergeben wird, um ein durchscheinendes Material zu erzeugen, das undurchsichtig erscheint.
Mit dem Operator Substrate Deckkraft-Gewicht“ zwischen dem Slab und dem Oberflächenmaterial wird die Transmittanz des Materials gesteuert. Verwende den Gewicht-Input auf dem Substrate Deckkraft-Gewicht-Knoten, um zu steuern, wie transparent das Material ist.
Du kannst einen konstanten Wert von 0 bis 1 verwenden, um die Opazität des gesamten Materials zu steuern (wie oben), oder eine Textur (wie unten), um Teile des Materials zu steuern.
Du kannst noch einen Schritt weiter gehen und einen Materie-Slab erzeugen, der farbigem Glas ähnelt, indem du die MFP des beteiligten Mediums festlegst. Das wird mit dem Helfer-Knoten Transmittanz-zu-Mittlerer-freier-Pfad eingerichtet, wie im folgenden Beispiel. Hier wird eine orange Transmittanzfarbe verwendet, die mit dem SSS MFP verbunden ist, um das Material nur in den Bereichen orange zu tönen, wo es Licht durchlässt. Die festgelegte Transmittanzfarbe ist die „Ziel“-Farbe, die bei dem angegebenen Dicke-Input erreicht wird (Standard ist 0,01 Zentimeter).
Zusätzliche Hinweise zur Substrate-Transluzenz
Durchscheinende Materialien unterstützen kein Bildschirmraum-Subsurface-Scattering, auch wenn der Slab als Volumen des teilnehmenden Mediums gilt.
Substrate Performance
Übersicht der Performance-Kosten:
Bei der Nutzung eines einzelnen Substrate Schattierungsmodell-Knotens oder der Legacy-Inputs sollten die Kosten ähnlich wie beim Vorgängermodell ausfallen. Basisdurchlauf, Beleuchtung, Durchlauf und andere sollten ungefähr die gleichen Kosten haben.
Bei der Verwendung eines einzelnen Slab mit mehreren Funktionen, etwa bei der gleichzeitigen Nutzung mehrerer Funktionen, erweiterten Funktionen wie Glitzerpunkten, oder bei der Nutzung mehrerer Slabs innerhalb eines Materials, beginnen die Frame-Kosten zu steigen.
Wenn du mehrere Slabs ohne Parameter-Überblenden verwendest, wird der zweite Slab teurer, und folgende Slabs erhöhen die Kosten nahezu linear.
Substrate verwendet nach dem Basisdurchlauf einen Durchlauf zur Materialklassifizierung, damit der Beleuchtungsdurchlauf effizienter abläuft. Dies führt zu einem kleinen, festen Overhead nach dem Basisdurchlauf, hilft aber dabei, die Beleuchtungskosten zu senken. Du kannst den Debug-Ansichtsmodus verwenden, um die Kosten zu verstehen:
Die Materialzählung zeigt die Anzahl der ausgeführten Schließungen pro Pixel an und visualisiert, was potenziell teuer ist.
Die Materialklassifizierung zeigt die Beleuchtungskomplexität bei der Ausführung von Pixeln / Kacheln an.
Substrate Debug-Ansichtsmodi
Bei der Nutzung von Substrate ist es nützlich, zu sehen, wie sich die Materialien verhalten und welche mehr Aufmerksamkeit brauchen. Die Debug-Ansichtsmodi von Substrate befinden sich in der Dropdown-Liste Ansichtsmodi in der Kategorie Substrate.
Substrate umfasst folgende Ansichtsmodi für das Debugging:
Klicke auf die Bilder in der Tabelle, um sie zu vergrößern.
| Debug-Ansicht | Debug-Ansichtsname | Beschreibung |
|---|---|---|
Materialeigenschaften | Visualisierung der Substrate-Eigenschaften unter dem Mauszeiger. Hovere mit der Maus über das Pixel, das du untersuchen möchtest, und du siehst den finalen, gepackten Materialabschluss, der für die Beleuchtung verwendet wird, darunter Eigenschaften, Gewicht, aktivierte Funktionen des Materials, verwendete Bytes und mehr. | |
Materialanzahl | Visualisierung der Substrate-Materialanzahl pro Pixel und Einfärbung entsprechend der Anzahl der verwendeten BSDF-Slab-Knoten. | |
Material-Bytesanzahl | Visualisierung des Substrate Material-Footprint pro Pixel. Die Materialien sind entsprechend der Anzahl der von ihnen verwendeten Bytes farblich gekennzeichnet. Du kannst auch mit der Maus über ein Material fahren, um die Bytes pro Pixel des Materials anzuzeigen. | |
Substrate-Info | Dieser Modus fasst Informationen über die Verwendung von Substrate im Projekt zusammen, darunter Informationen zur maximalen Speichernutzung, den maximalen Bytes pro Pixel (nützlich zum Einstellen von Vereinfachungsschwellenwerten) und aktivierten Substrate-Funktionen. | |
| Substrate Erweiterte Ansichtsmodi | ||
Erweiterte Materialeigenschaften | Gibt Informationen über die verschiedenen Substrate-Slabs, aus denen das Material besteht, das sich aktuell unter dem Mauszeiger befindet. Jeder Slab wird separat auf dem Bildschirm dargestellt. Dieser Ansichtsmodus muss in den Projekt-Einstellungen unter der Kategorie Engine > Rendering mit dem Kontrollkästchen Substrate Erweiterte Visualisierungsshader aktiviert werden. | |
Materialklassifizierung | Dieser Modus zeigt die Materialkomplexität pro Kachel an und gibt ein farbkodiertes Ergebnis zurück:
| |
Klassifizierung raue Refraktion | Dieser Modus zeigt Materialien an, die die Eigenschaft „Undurchsichtige raue Refraktion“ verwenden. Dieser Modus unterscheidet auch zwischen Substrate-Materialien, bei denen Subsurface Scattering aktiviert oder deaktiviert ist. Die in einigen dieser Visualisierungsmodi gezeigten Kacheln werden verwendet, um später optimierte Nachbeleuchtungs-Durchläufe auszuführen. Diese können nützlich sein, um deine Substrate-Materialien zu optimieren, indem du die Anzahl der verwendeten Slabs und aktivierten Funktionen reduzierst und die Parameter-Überblendung für Operatoren verwendest. Wenn ein Material aus mehreren Materialien besteht, die miteinander vermischt und übereinandergeschichtet sind, aber für einen bestimmten Pixel nur ein einziger Slab sichtbar ist (aufgrund dynamischer Maskierung oder eines niedrigen Transmittanzwerts), werden die nicht sichtbaren Slabs in der Visualisierung nicht angezeigt (oder optimiert). |
Einschränkungen und bekannte Probleme
Substrate ist eine Beta-Funktion, daher empfehlen wir, sie nicht für Produktionszwecke zu verwenden.
Die Plattformunterstützung und -prüfung ist derzeit noch unvollständig. Wenn es in den produktionsreifen Zustand übergeht, wird es mehr Tests geben.
Funktionen und Benutzererfahrung können sich ändern, sodass vorhandene Assets möglicherweise anders funktionieren oder ganz ungültig werden.
Hat Beta-Support für Pfad-Tracer.
Einige Plattformen und Rendering-Pfade, wie DirectX 11 (DX11) und Mac, weisen Probleme auf und funktionieren möglicherweise nicht vollständig.
Bei Verwendung von adaptivem GBuffer:
Die Cook-Zeit (Shader-Kompilierungszeit) erhöht sich im Vergleich zur Verwendung mit Zusammensetzbarer GBuffer, selbst bei einfachen Materialien. Das liegt daran, dass adaptiver GBuffer mehr Verarbeitung erfordert und mehr Kodierungs-/Dekodierungsschritte hat.
Die Laufzeit-Performance wird im Vergleich zu Überblendbarer GBuffer für genau dasselbe Projekt abnehmen. Dies liegt in erster Linie an den Kodierungs-/Dekodierungsschritten und der komplexeren Laufzeitauswertung.
Zusätzliche Ressourcen
Der State of Unreal Livestream – Zeitstempel: 02:29:42
Das Beispielprojekt Inhaltsbeispiele umfasst ein Level namens „SubstrateMaterials“, in dem du verschiedene Beispiele und Demonstrationen der Materialfunktion von Substrate-Materialien erkunden kannst.
Die Verwendung von Substrate mit dem Inhaltsbeispiel-Projekt erfordert, dass du Substrate für das Projekt aktivierst. Nur diese Map wurde für die Verwendung mit Substrate validiert. Wenn du nur eine einzige Instanz des Inhaltsbeispiele-Projekts verwendest, empfehlen wir, Substrate nur für dieses Level zu aktivieren und es zu deaktivieren, wenn du den Rest des Projekts verwendest.