Gebrauchsmaterialausdrücke sind Knoten, die Materialien auf eine Reihe anderer Arten beeinflussen können, als man vielleicht gewohnt ist. Zum Beispiel wird der Knoten GIReplace die indirekte Rückprallfarbe eines Objekts durch einen von Ihnen eingegebenen Wert ersetzen, während der Knoten „Lineare Interpolation“ dabei hilft, zwei Texturen basierend auf einer Alpha-Input zu überblenden. Auf der folgenden Seite finden Sie detaillierte Beschreibungen aller Hilfsmittel-Ausdrücke, die im Material-Editor verfügbar sind.
AntialiasedTextureMask
Der Ausdruck AntialiasedTextureMask kann ein Material mithilfe einer weichen (geglätteten) Übergangsmaske erstellen. Die Maske kann verwendet werden, um zwischen zwei komplexen Material-Eigenschaften zu überblenden oder um ein Material mit Alpha-Überblendung auszublenden (funktioniert gut mit SoftMasked). Legen Sie eine Textur mit der Maske in einem Kanal fest (rot, grün, blau oder alpha), stellen Sie den verwendeten Kanal im Ausdruck ein und definieren Sie den Vergleichswert. Unter der Annahme, dass der Kanal einen Graustufenwert im Bereich 0 = schwarz bis 1 = weiß speichert, definiert die Vergleichsfunktion, ob die resultierende Maske 0 oder 1 sein soll. Dieser Ausdruck ist ein Parameter, der es ermöglicht, die Eigenschaft Textur von untergeordneten MaterialInstances zu überschreiben.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Schwellenwert | Gibt den Wert an, der als Grenzwert bei der Pixelabdeckung verwendet wird. Pixel-Abdeckungswerte unter diesem Wert werden schwarz; Werte darüber werden weiß. |
Kanal | Gibt den Kanal der Textur an, der als Maske verwendet werden soll. |
Textur | Gibt die zu verwendende Maskentextur an. |
| Inputs | |
UVs | Nimmt Texturkoordinaten auf, um sie auf die Texturmaske anzuwenden. |
Pseudocode:
Result = 1
if TextureLookup < Threshold then Result = 0Die tatsächliche Implementierung ist deutlich komplexer, da sie versucht, Werte zwischen 0 und 1 basierend auf der tatsächlichen Pixel-Abdeckung zurückzugeben, um Aliasing zu vermeiden.
Beispiel (diese kleine 128x128-Textur, unkomprimiert für beste Qualität):
Wurde als normale Textur (links oben) und mit dem beschriebenen Materialausdruck (rechts unten) verwendet:
Die Technik funktioniert am besten bei Vergrößerung und mit unscharfen Input-Inhalten. Komprimierung beeinträchtigt die Qualität erheblich, daher sollten Sie unkomprimierte Texturen mit niedriger Auflösung verwenden.
Schwarzer Körper
Der Ausdruck BlackBody simuliert die Auswirkungen von Schwarzkörperstrahlung innerhalb Ihres Materials. Der Benutzer gibt eine Temperatur (in Kelvin) ein, und die resultierende Farbe und Intensität können zur Steuerung von Grundfarben- und Emissionswerten verwendet werden, um ein physikalisch präzises Ergebnis zu erzielen.
BumpOffset
BumpOffset ist der Begriff der Unreal Engine 4 für das, was allgemein als „Parallax Mapping“ bekannt ist. Der Bump-Versatz-Ausdruck ermöglicht es einem Material, eine Tiefenillusion zu erzeugen, ohne dass zusätzliche Geometrie erforderlich ist. BumpOffset-Materialien verwenden eine Graustufen-Höhenkarte, um ausführliche Informationen zu geben. Je heller der Wert in der Höhenkarte, desto stärker tritt das Material hervor; diese Bereiche werden sich parallaxartig verschieben, wenn sich eine Kamera über die Oberfläche bewegt. Dunklere Bereiche in der Höhenkarte sind „weiter entfernt“ und verschieben sich am wenigsten.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Höhenverhältnis | Multiplikator für die Tiefe aus der Höhenkarte. Je größer der Wert, desto extremer wird die Tiefenwirkung. Typische Werte liegen zwischen 0,02 und 0,1. |
Referenzebene | Gibt die ungefähre Höhe im Texturraum an, um den Effekt anzuwenden. Ein Wert von 0 lässt die Textur vollständig von der Oberfläche verzerrt erscheinen, während bei einem Wert von 0,5 (Standardeinstellung) einige Bereiche hervortreten und andere einsinken. |
| Inputs | |
Koordinieren | Nimmt die Basistexturkoordinaten auf, die durch den Ausdruck geändert werden sollen. |
Höhe | Nimmt die Textur (oder einen Wert) auf, die als Höhenkarte verwendet werden soll. |
Höhenverhältnis-Input | Multiplikator für die Tiefe aus der Höhenkarte. Je größer der Wert, desto extremer wird die Tiefenwirkung. Typische Werte liegen zwischen 0,02 und 0,1. Falls verwendet, überschreibt diese Eingabe jeden Wert in der Höhenverhältnis-Eigenschaft. |
Konstante Bias-Skala
Der Ausdruck Konstante Bias-Skala nimmt einen Inputwert, addiert einen Bias-Wert und multipliziert ihn dann mit einem Skalierungsfaktor, wodurch das Ergebnis ausgegeben wird. Um beispielsweise Input-Daten von [-1,1] in [0,1] umzuwandeln, würden Sie einen Bias von 1,0 und eine Skalierung von 0,5 verwenden.
| Eigenschaften | Beschreibung |
|---|---|
Ausrichtung | Gibt den Wert an, welcher dem Input hinzugefügt werden soll. |
Skalierung | Gibt den Multiplikator für das verzerrte Ergebnis an. |
DDX
Der Ausdruck DDX stellt die DDX-Ableitungsberechnung bereit, eine GPU-Hardwarefunktion, die bei der Pixel-Shader-Berechnung verwendet wird.
DDY
Der Ausdruck DDY stellt die DDY-Ableitungsberechnung bereit, eine GPU-Hardwarefunktion, die bei der Pixel-Shader-Berechnung verwendet wird.
TiefeFade
Der Ausdruck TiefeFade wird verwendet, um unschöne Nähte zu verbergen, die entstehen, wenn sich durchscheinende und undurchsichtige Objekte kreuzen.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Überblendabstand | Weltraumdistanz, über die die Überblendung erfolgen soll. Dies wird verwendet, wenn der FadeDistance-Input nicht verbunden ist. |
| Inputs | |
Opazität | Nimmt die vorhandene Deckkraft des Objekts vor der Tiefenverblendung auf. |
Überblendabstand | Weltraumdistanz, über die die Überblendung erfolgen soll. |
Das Materialnetzwerk für dieses Beispiel ist unten abgebildet.
Tiefenschärfefunktion
Der Ausdruck Tiefenschärfefunktion soll Künstlern die Kontrolle darüber geben, was mit einem Material passiert, wenn es durch die Tiefenschärfe unscharf wird. Es gibt einen Wert zwischen 0-1 aus, wobei 0 für „scharf“ und 1 für „vollständig unscharf“ steht. Dies ist beispielsweise nützlich für die Interpolation zwischen scharfen und unscharfen Versionen einer Textur. Der Tiefen-Input ermöglicht es, die bestehenden Ergebnisse der Schärfentiefe berechnungen der Szene durch andere Berechnungen zu überschreiben.
Entsättigung
Der Ausdruck Entsättigung entsättigt seinen Input oder wandelt die Farben seiner Input basierend auf einem bestimmten Prozentsatz in Grautöne um.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Leuchtdichtefaktoren | Gibt den Betrag an, den jeder Kanal zur entsättigten Farbe beiträgt. Dies steuert, dass Grün heller als Rot und Rot heller als Blau erscheint, wenn die Farben entsättigt werden. |
| Inputs | |
Fraktion | Gibt den Entsättigungsgrad an, der auf den Input angewendet werden soll. Der Prozentsatz kann von 0,0 (vollständige Originalfarbe, keine Entsättigung) bis 1,0 (vollständig entsättigt) reichen. |
Programmierer: Entsättigte Farbe definieren D, Inputfarbe I und Leuchtdichtefaktor L. Die Output wird O = (1 - Prozent)*( D.dot( I )) + Prozent * I
Distance
Der Ausdruck Distanz berechnet den (euklidischen) Abstand zwischen zwei Punkten/Farben/Positionen/Vektoren und gibt den resultierenden Wert aus. Dies funktioniert bei ein-, zwei-, drei- und vierkomponentigen Vektoren, wobei beide Inputs zum Ausdruck die gleiche Anzahl von Kanälen haben müssen.
| Eintrag | Beschreibung |
|---|---|
| Inputs | |
A | Nimmt einen Wert oder Vektor beliebiger Länge auf. |
B | Nimmt einen Wert oder Vektor beliebiger Länge auf. |
Beachten Sie, wie sich die Farbe ändert, wenn der Kameraabstand zunimmt.
Pseudocode:
Result = length (A - B)HLSL-Code auf niedriger Ebene:
float Result = sqrt (dot (A-B, A-B))EntfernungFeldGradient
Der Materialausdruckknoten EntfernungFeldGradient gibt bei Normalisierung die X-, Y- und Z-Richtung aus, in die sich ein Objekt im Distanzfeld bewegen würde. Dadurch eignet sich der Distanzfeld-Gradient-Materialausdrucksknoten besonders gut für Materialien, die Flüssigkeitsbewegungen simulieren sollen.
Mesh-Distanzfelder generieren muss aktiviert sein in Projekteinstellungen unter Rendern, damit dieser Ausdruck richtig funktioniert.
| Eintrag | Beschreibung |
|---|---|
Position | Wird standardmäßig die aktuelle Weltposition verwendet, wenn kein Input erfolgt. |
Hier ist ein Beispiel für die Verwendung des Materialausdrucks DistanceFieldGradient in Ihren Materialien. In diesem Beispiel ist zu beachten, dass der DistanceFieldGradient zunächst normalisiert und dann in einen Maskenkanal-Knoten eingegeben wurde. Der Grund dafür ist, dass ohne vorherige Normalisierung des DistanceFieldGradient keine Richtungsdaten gewonnen werden können. Der Maskenkanal-Parameter wurde hinzugefügt, um ein einfacheres Umschalten der RGB-Kanäle innerhalb der Material-Instanz zu ermöglichen.
Hier sehen Sie ein Beispiel für den DistanceFieldGradient in Aktion. Das folgende Bild zeigt, welche Daten der DistanceFieldGradient verwendet, wenn die verschiedenen RGB-Kanäle aktiviert sind.
| Number | Beschreibung |
|---|---|
1 | Aktivieren des R-Kanals und Deaktivieren aller anderen Kanäle. |
2 | Aktivieren des G-Kanals und Deaktivieren aller anderen Kanäle. |
3 | Aktivieren des B-Kanals und Deaktivieren aller anderen Kanäle. |
Entfernung zur nächstgelegenen Oberfläche
Der Materialausdruck-Knoten Abstand zur nächsten Oberfläche ermöglicht es Materialien, jeden Punkt im globalen Distanzfeld der Ebene abzutasten. Dieser Materialausdruck funktioniert, indem er den vorzeichenbehafteten Entfernung in Welt-Bereich -Einheiten vom Distanzfeld zu den nächstgelegenen Verdeckungen in der Szene ausgibt.
Mesh-Distanzfelder generieren muss aktiviert sein in Projekteinstellungen unter Rendern, damit dieser Ausdruck richtig funktioniert.
| Eintrag | Beschreibung |
|---|---|
Position | Wird standardmäßig die aktuelle Weltposition verwendet, wenn kein Input erfolgt. |
Hier ist ein Beispiel für den Materialausdruck Abstand zur nächsten Oberfläche in Aktion.
In diesem Beispiel wurde der Entfernung zur nächsten Oberfläche in den Transparenz-Input eines Materials eingespeist und dieses Material wurde auf eine Statisches-Mesh-Ebene angewendet, die knapp über dem Level-Boden platziert wurde. Der Entfernung zur nächsten Oberfläche zeigt dem Material an, nur die Bereiche rot zu färben, in denen die Statisches-Mesh-Ebene beginnt, sich mit anderen platzierten statischen Meshs zu überschneiden.
FunktionLevelSwitch
Der Knoten Funktionsebenenschalter kann vereinfachte Materialien für Geräte mit geringerer Leistung erstellen.
Beispielverwendung: Sie haben möglicherweise ein Material mit 10 überlappenden Texturen und komplexer Mathematik, aber nur eine einzige statische Textur für Mobilgeräte (Funktionsebene ES2).
| Inputs | Beschreibung |
|---|---|
Standard | Die standardmäßige Funktionsebene. |
ES2 | Funktionsebene, die durch die Kernfunktionen von OpenGL ES2 definiert ist. |
ES3.1 | Funktionsebene, die durch die Fähigkeiten von Geräten auf Metal-Ebene definiert ist. |
SM4 | Funktionsebene, definiert durch die Kernfunktionen von DX10 Shader Model 4. |
SM5 | Funktionsebene, definiert durch die Kernfunktionen von DX11 Shader Model 5. |
Fresnel
Der Ausdruck Fresnel berechnet einen Abfall basierend auf dem Skalarprodukt der Oberflächennormalen und der Richtung zur Kamera. Wenn die Oberflächennormale direkt auf die Kamera zeigt, wird ein Wert von 0 ausgegeben. Wenn die Oberflächennormale senkrecht zur Kamera steht, wird ein Wert von 1 ausgegeben. Das Ergebnis wird auf [0,1] geklammert, sodass keine negative Farbe in der Mitte entsteht.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Exponent | Gibt an, wie schnell der Outputwert abfällt. Höhere Werte bedeuten einen stärkeren oder schnelleren Falloff. |
Basis-Reflexionsbruch | Gibt den Anteil der spiegelnden Reflexion an, wenn die Oberfläche von vorne betrachtet wird. Ein Wert von 1 deaktiviert den Fresnel-Effekt effektiv. |
| Inputs | |
ExponentIn | Gibt an, wie schnell der Outputwert abfällt. Höhere Werte bedeuten einen stärkeren oder schnelleren Falloff. Falls verwendet, überschreibt dieser Wert stets den Exponent-Eigenschaftswert. |
Basis-Reflexionsbruch | Gibt den Anteil der spiegelnden Reflexion an, wenn die Oberfläche von vorne betrachtet wird. Ein Wert von 1 deaktiviert den Fresnel-Effekt effektiv. Falls verwendet, überschreibt dieser Wert stets den Exponent-Eigenschaftswert. |
Normal | Nimmt einen dreikanaligen Vektorwert auf, der die Normale der Oberfläche im Weltraum darstellt. Um die Ergebnisse einer Normal Map zu sehen, die auf die Oberfläche des Fresnel-Objekts angewendet wird, verbinden Sie die Normal Map mit dem Normal-Input des Materials und verbinden Sie dann einen Ausdruck PixelNormalWS zu diesem Input auf dem Fresnel. Wenn keine Normale angegeben ist, wird die Tangenten-Normale des Meshs verwendet. |
GIReplace
GIReplace ermöglicht es Künstlern, eine andere, normalerweise einfachere Ausdruckskette anzugeben, wenn das Material für GI verwendet wird.
Beispielverwendung: Lightmass statisches GI und LPV dynamisches GI verwenden es.
| Inputs | Beschreibung |
|---|---|
Standard | Die Standard-GI. |
StatischIndirekt | Wird für gebkte indirekte Beleuchtung verwendet. |
DynamischIndirekt | Wird für dynamische indirekte Beleuchtung verwendet. |
LightmassReplace
Der Ausdruck LightmassReplace durchläuft einfach den Echtzeiteingang, wenn das Material für normale Renderingzwecke kompiliert wird, und durchläuft den Lightmass-Input, wenn das Material für die globale Beleuchtung nach Lightmass exportiert wird. Dies ist nützlich, um Materialausdr ücke zu umgehen, die die exportierte Version nicht korrekt verarbeiten kann, zum Beispiel WorldPosition.
| Inputs | Beschreibung |
|---|---|
Echtzeit | Nimmt die Werte auf, die für die normale Wiedergabe durchgelassen werden sollen. |
Lichtmasse | Nimmt die Werte auf, die beim Exportieren des Materials nach Lightmass weitergegeben werden sollen. |
LinearInterpolate
Der Ausdruck LinearInterpolate vermischt zwei Inputwerte basierend auf einem dritten Inputwert, der als Maske verwendet wird. Dies kann man sich wie eine Übergangsmaske zwischen zwei Texturen vorstellen, ähnlich einer Ebenenmaske in Photoshop. Die Intensität der Maske Alpha bestimmt das Verhältnis der Farbübernahme aus den beiden Input-Werten. Bei einem Alpha-Wert von 0,0 wird der erste Input verwendet. Bei einem Alpha-Wert von 1,0 wird der zweite Input verwendet. Bei Alpha-Werten zwischen 0,0 und 1,0 entsteht eine Überblendung aus beiden Inputs. Beachten Sie, dass die Überblendung pro Kanal erfolgt. Wenn Alpha also eine RGB-Farbe ist, definiert der Rotkanalwert von Alpha die Mischung zwischen den Rotkanälen von A und B unabhängig vom grünen Kanal von Alpha, der die Mischung zwischen den grünen Kanälen von A und B definiert.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Konstante A | Der Wert wird auf 0,0 abgebildet. Wird nur verwendet, wenn der B-Input nicht verbunden ist. |
Konst. B | Der Wert wird auf 1,0 abgebildet. Wird nur verwendet, wenn der B-Input nicht verbunden ist. |
Konstantes Alpha | Nimmt den Wert auf, der als Alpha-Maske verwendet werden soll. Wird nur verwendet, wenn der Alpha-Input nicht verbunden ist. |
| Inputs | |
A | Nimmt die auf 0,0 abgebildeten Werte auf. |
B | Nimmt die auf 1,0 abgebildeten Werte auf. |
Alpha | Nimmt den Wert auf, der als Alpha-Maske verwendet werden soll. |
Programmierer: LinearInterpolate führt basierend auf dem parametrischen Wert Alpha einen Lerp pro Kanal zwischen A und B durch.
Rauschen
Der Ausdruck Lärm erstellt ein prozedurales Rauschfeld und gibt Ihnen Kontrolle über die Art seiner Generierung.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Skalierung | Ändert die Gesamtgröße der Rauschzellen. Je niedriger die Zahlen, desto größer das Rauschen. |
Qualität | Eine Optik-/Leistungseinstellung. Niedrigere Werte sind schneller, können aber schlechter aussehen, höhere Werte sind langsamer, können aber besser aussehen. |
Funktion |
|
Turbulenz | Wenn „Turbulence“ aktiviert ist, fügt jede Rauschoktave dem Ergebnis nur absolute Werte hinzu. Ändert die visuellen Eigenschaften und kann große Formen, die scharfen Bergkämmen ähneln |
Ebenen | Die Anzahl der zu kombinierenden Rauschpegel in unterschiedlichen Maßstäben multipliziert den Rechenaufwand mit der Anzahl der Pegel. |
Output Min | Der niedrigste Wert, der bei der Rauschberechnung ausgegeben wird. |
Output Max | Der höchste Wert, der bei der Rauschberechnung ausgegeben wird. |
Levelskala | Die Pegelskala ist immer aktiv und bestimmt, wie stark sich die Skala bei jeder neuen Oktave ändert. |
Kachelung | Ermöglicht das Kacheln von Rauschen bei Rauschfunktionen, die dies unterstützen. Dies ist rechenintensiver, aber nützlich beim Erstellen von nahtlos übergehenden Texturen. |
Wiederholungsgröße | Wie oft soll das Geräusch beim Fliesenlegen wiederholt werden? |
| Inputs | |
Position | Ermöglicht die Anpassung der Texturgröße über einen 3D-Vektor. |
Filterbreite | Steuert tatsächlich, wie viel Unschärfe auf die Rauschtextur angewendet wird. |
Vorheriger Frame-Wechsel
Der Materialausdruck Vorheriger Frame-Wechsel unterstützt bei der Umsetzung komplexer vertex animations in Materialien, indem eine Möglichkeit bereitgestellt wird, korrekte Bewegungsvektoren zu generieren, die ordnungsgemäß mit Temporal AA und Motion Blur funktionieren.
Materialien, die nur zeitabhängig sind, funktionieren bereits ohne Änderungen. Allerdings können sie keine anderen Variablen wie Material-Parameter berücksichtigen, die die Animation zur Laufzeit beeinflussen können. Der Vorheriger Frame Wechsel-Materialausdruck bietet eine Lösung, diese Probleme manuell zu beheben, indem er die Änderungen dieser Parameter nachverfolgt. Beispielsweise können in Blueprints manuell Ausdrücke für die Bewegungsvektor-Generierung bereitgestellt werden, die durch Änderungen im Welt-Positionsversatz zwischen Frames entstehen.
Geschwindigkeiten aus der Vertex-Deformation müssen aktiviert werden in Projekteinstellungen unter Rendern damit dieser Ausdruck funktioniert.
4.24 und spätere Versionen verwenden Genaue Geschwindigkeiten durch Vertex-Deformation
4.25 und zukünftige Versionen verwenden Outputgeschwindigkeiten aufgrund von Scheitelpunktverformung
| Eintrag | Beschreibung |
|---|---|
Aktueller Frame | Richtungsvektor, der als Referenz für die Startposition verwendet wird. |
Vorheriger Frame | Richtungsvektor, der als XYZ-Referenz für den hinzuzufügenden Unschärfegrad verwendet wird. |
Hier ist ein Beispiel mit dem Materialausdruck Vorheriger Frame-Wechsel in einem Material.
In diesem Beispiel verwendet der Vorheriger-Frame-Schalter einen konstanten Wert, um die Richtungsunschärfe durch einen Multiplizieren-Knoten zu steuern.
In diesem Beispiel sehen Sie, wie dies in Epics eigenen Spielen wie Fortnite eingesetzt wird, um die Bewegungsunschärfe mit einer Scheitelpunkt-Animation zu steuern, die sich auf dem Bildschirm zusammensetzt. Die Animation auf der rechten Seite verwendet Vorheriger Frame Wechsel , um Bewegungsunschärfe hinzuzufügen, während die Animation auf der linken Seite dies nicht tut.
Ansichtsfenster: Flagge zeigen
Im Editor-Ansichtsfenster gibt es unter Zeigen > Visualisieren > Reprojektion des vorherigen Frames die Sie verwenden können mit Vorheriger Frame-Wechsel um Abweichungen in den Richtungsvektoren des aktuellen und vorherigen Frames zu diagnostizieren und zu korrigieren.
Wenn aktiviert, vergleicht dieser Visualisierer die aktuelle Bildfarbe mit der vorherigen und gibt den Unterschied zwischen den beiden Frames aus. Wenn die Differenz null beträgt, erscheint das Material im Viewport grau (links abgebildet). Wenn die Richtungsvektoren nicht übereinstimmen, zeigt das Material eine farbige Überlagerung (rechts abgebildet).
Qualitätsschalter
Der Ausdruck Qualitätsschalter ermöglicht die Verwendung unterschiedlicher Ausdruck-Netzwerke, je nachdem, ob die Engine zwischen Qualitätsstufen umgeschaltet wird, beispielsweise die Verwendung einer niedrigeren Qualität auf Geräten der unteren Preisklasse.
| Inputs | Beschreibung |
|---|---|
Standard | Dieser Input wird für Netzwerke verwendet, die für eine standardmäßige Bildqualität ausgelegt sind. |
Niedrig | Dieser Input wird für Netzwerke verwendet, die für eine geringere Bildqualität ausgelegt sind. |
Hoch | Dieser Input wird für Netzwerke verwendet, die für eine höhere Bildqualität ausgelegt sind. |
Um die Achse drehen
Der Ausdruck Um die Achse drehen dreht einen dreikanaligen Vektor-Input bei gegebener Rotationsachse, einem Punkt auf der Achse und dem Drehwinkel. Dieser Knoten gibt das Delta zur rotierten Position aus, nicht die vollständig rotierte Position selbst. Dies macht ihn zu einer nützlichen und einfachen Möglichkeit, das Ergebnis in den Welt-Positionsversatz-Input für einfache Drehungen einzugeben.
| Inputs | Beschreibung |
|---|---|
Normalisierte Rotationsachse | Nimmt einen normalisierten (0-1) Vektor auf, der die Achse darstellt, um die sich das Objekt dreht. |
Rotationswinkel | Der Drehwinkel. Ein Wert von 1 entspricht einer vollen 360-Grad-Drehung. |
PivotPoint | Nimmt den Dreikanalvektor auf, der den Drehpunkt darstellt, um den sich das Objekt dreht. |
Position | Nimmt den Dreikanalvektor auf, der die Position des Objekts darstellt. |
Im obigen Beispiel würde sich die Vorschauebene scheinbar um ihre vertikale Achse drehen.
Kugelmaske
Der Ausdruck Kugelmaske gibt einen Maskenwert basierend auf einer Distanzberechnung aus. Wenn ein Eingabewert die Position eines Punktes ist und der andere Eingabewert das Zentrum einer Kugel mit bestimmtem Radius, ist der Maskenwert außerhalb 0 und innerhalb 1, mit einem Übergangsbereich dazwischen. Dies funktioniert bei ein-, zwei-, drei- und vierkomponentigen Vektoren
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Dämpfungsradius | Gibt den Radius an, der für die Entfernungsberechnung verwendet werden soll. |
Härte in Prozent | Gibt die Größe des Übergangsbereichs an. Dies funktioniert wie der Pinsel-Härtewert in Photoshop. 0 bedeutet einen harten Übergang, 100 bedeutet einen maximalen (weichen) Übergangsbereich. |
| Inputs | |
A | Nimmt den Wert auf, der die Position des zu prüfenden Punkts darstellt. |
B | Nimmt den Wert auf, der den Mittelpunkt der Kugel darstellt. |
Der Knoten gibt den Wert 1 aus, bis die Kamera eine bestimmte Distanz überschreitet, danach gibt er 0 aus.
Dünn-Durchscheinend
Der Ausdruck Output von dünnem, durchscheinendem Material stellt physikalisch basierte transparente Materialien in einem einzigen Durchgang präzise dar. Dies ermöglicht Ihnen die Erstellung von echt getönten oder farbigen transparente Materialien, die präzise auf Licht und Schatten reagieren.
Bei der Erstellung eines getönten Glasmaterials werden ein weißes Glanz-Highlight und ein getönter Hintergrund benötigt. Diese werden in einem einzigen Durchgang mit einem physikalisch basierten Shader gerendert, der Lichtreflexionen von der Luft ins Glas und vom Glas in die Luft berücksichtigt.
Aktivieren Sie die Ausgabe für Dünn-Durchscheinend-Material durch folgende Einstellungen im Material-Details-Panel:
Mischmodus: Durchscheinend
Schattierungsmodell: Dünn Durchscheinend
Beleuchtungsmodus: Oberflächen-Vorwärtsschattierung
Vektorrauschen
Der Vektorrauschmaterialausdruck fügt mehrere weitere 3D- oder 4D-Vektorrauschergebnisse hinzu, die Sie in Ihren Materialien verwenden können. Aufgrund der Laufzeitkosten dieser Funktionen wird empfohlen, nach der Entwicklung eines Looks mit ihnen die gesamte oder einen Teil der Berechnung mithilfe der Funktion „Renderziele“ in eine Textur einzubaken.
Diese Materialdiagramm-Ausdrücke ermöglichen die Entwicklung prozeduraler Looks in der Engine für endgültige Assets und bieten eine Alternative zur Erstellung prozedural generierter Texturen mit einem externen Tool. Im Vektorrauschen-Materialausdruck finden Sie die folgenden Vektorrauschentypen.
| Bild | Eintrag | Beschreibung |
|---|---|---|
Zellrauschen | Gibt eine zufällige Farbe für jede Zelle in einem 3D-Raster zurück (d. h. aus der mathematischen Bodenoperation, die auf den Knoten-Input angewendet wird). Die Ergebnisse sind für eine bestimmte Position immer konsistent und bieten daher eine zuverlässige Möglichkeit, einem Material Zufälligkeit hinzuzufügen. Die Berechnung dieser Vektorrauschfunktion ist äußerst kostengünstig, sodass es aus Leistungsgründen nicht erforderlich ist, sie in eine Textur einzubinden. | |
Perlin 3D-Rauschen | Gibt eine zufällige Farbe für jede Zelle in einem 3D-Raster zurück (d. h. aus der mathematischen Bodenoperation, die auf den Knoten-Input angewendet wird). Die Ergebnisse sind für eine bestimmte Position immer konsistent und bieten daher eine zuverlässige Möglichkeit, einem Material Zufälligkeit hinzuzufügen. Die Berechnung dieser Vektorrauschfunktion ist äußerst kostengünstig, sodass es aus Leistungsgründen nicht erforderlich ist, sie in eine Textur einzubinden. | |
Perlin-Gradient | Berechnet den analytischen 3D-Gradienten eines skalaren Perlin-Simplex-Rauschens. Die Output erfolgt über vier Kanäle, wobei die ersten drei (RGB) den Gradienten und der vierte (A) das skalare Rauschen darstellen. Dieser Rauschtyp ist nützlich für Unebenheiten auf einer Oberfläche oder für Flussdiagramme. | |
Perlin Curl | Berechnet die analytische 3D-Curl eines vektoriellen Perlin-Simplex-Rauschens (auch Curl-Rauschen genannt). Die Output ist ein 3D-Curl-Vektor mit Vorzeichen und eignet sich für Flüssigkeits- oder Partikelströmungen. | |
Voronoi | Berechnet dasselbe Voronoi-Rauschen wie der skalare Rauschmaterialknoten. Das skalare Voronoi-Rauschen streut Startpunkte im 3D-Raum und gibt die Entfernung zum nächstgelegenen Punkt zurück. Die Vektorrauschen-Version gibt die Position des nächstgelegenen Startpunkts in RGB und die Entfernung zu ihm in A zurück. Insbesondere in Verbindung mit Cellnoise kann dies ein zufälliges Verhalten pro Voronoi-Zelle ermöglichen. |
Unten sehen Sie ein einfaches Steinbettmaterial, das die Distanzkomponente des Voronoi-Vektorrauschens verwendet, um einige Oberflächenunebenheiten zu modulieren und Moos in die Risse einzuarbeiten. Die Seed-Position wird zusammen mit „Vektorrauschen > Zellrauschen“ verwendet, um die Farbe und die Unebenheitshöhe pro Stein zu ändern.
Die auf Derivaten basierenden Operationen Perlin Curl und Perlin-Gradient können in Oktaven addiert werden, genau wie normales Perlin-Rauschen. Für Ableitungen komplexerer Ausdrücke ist es notwendig, den Gradienten des Ergebnisses des Ausdrucks zu berechnen. Um dies zu unterstützen, platzieren Sie den zu berechnenden Ausdruck in einer Materialfunktion und verwenden Sie ihn mit den folgenden Hilfsknoten.
| Eintrag | Beschreibung |
|---|---|
Prepare3DDeriv | Verwendet in einem Tetraedermuster versetzte Positionen, um 3D-Ableitungen zu berechnen. Bewerten Sie dieselbe 3D-Funktion an jeder von dieser Funktion erzeugten Offset-Position und geben Sie dann die resultierenden Werte in Compute3DDeriv ein. |
Compute3DDeriv | Verwendet in einem Tetraedermuster versetzte Positionen, um 3D-Ableitungen zu berechnen. Mit Prepare3DDeriv verwenden. |
GradFrom3DDeriv | Berechnet den 3D-Gradientenvektor aus dem Ergebnis von Prepare3DDeriv/Compute3DDeriv. |
CurlFrom3DDeriv | Berechnet die Rotation eines 3D-Vektorfelds aus dem Ergebnis von Prepare3DDeriv/Compute3DDeriv. |
Diese Hilfsmaterialfunktionen verwenden vier Auswertungen des Basisausdrucks, die in einem tetraedrischen Muster angeordnet sind, um diese auf Ableitungen basierenden Operationen anzunähern.
Nachfolgend finden Sie Beschreibungen der verschiedenen Rauschfunktionen, die Sie im Vektorrauschen-Materialausdruck finden.
| Eintrag | Beschreibung |
|---|---|
| Eigenschaften | |
Funktion |
|
Qualität | Eine Optik-/Leistungseinstellung. Niedrigere Werte sind schneller, können aber schlechter aussehen, höhere Werte sind langsamer, können aber besser aussehen. |
Kachelung | Bei Rauschfunktionen, die dies unterstützen, ermöglicht dies die Kachelung von Rauschen. Dies ist rechenintensiver, aber nützlich beim Erstellen von nahtlos übergehenden Texturen. |
Kachelgröße | Wie oft soll das Geräusch beim Fliesenlegen wiederholt werden? Bei Perlin-Rauschvarianten muss die Kachelgröße ein Vielfaches von drei sein. |
| Inputs | |
Position | Ermöglicht die Anpassung der Texturgröße über einen 3D-Vektor. |
Zellrauschen Materialbeispiel:
Perlin-Gradient Materialbeispiel:
Voronoi Materialbeispiel: