Bei der Gestaltung bestimmter Oberflächen wie Wasser oder Glas musst du in der Lage sein, die Oberfläche nicht nur durchsichtig zu machen, sondern ihr auch ein Gefühl von Tiefe und Farbe zu geben. In der realen Welt werden diese Eigenschaften als Transparenz oder Opazität bezeichnet, und die beiden Begriffe werden oft austauschbar verwendet, um dieselbe Sache zu beschreiben. In der Unreal Engine haben Transparenz und Opazität zwei unterschiedliche Bedeutungen.
- Die Transparenz wird verwendet, um festzulegen, ob eine Oberfläche durchsichtig ist oder nicht.
- Die Opazität wird verwendet, um den Grad der Lichtdurchlässigkeit einer Oberfläche zu bestimmen. Mit anderen Worten: Der Opazitätswert bestimmt, wie durchsichtig oder undurchsichtig (wie durchsichtig / undurchsichtig) eine Oberfläche ist.
Im folgenden Tutorial erfährst du alles, was du über die Verwendung von Transparenz in deinen Unreal Engine Materialien wissen musst.
Transparenz
Als Transparenz wird die Fähigkeit einer Oberfläche bezeichnet, Licht zu blockieren oder durchzulassen. Ein Ziegelstein ist zum Beispiel ein Objekt, das keine Transparenz aufweist. Buntglas lässt zwar einen Teil des Lichts durch, aber nicht alles, und ist daher eine transparente Oberfläche. Du kannst mit Transparenz eine Vielzahl von verschiedenen Oberflächentypen aus der realen Welt simulieren, darunter auch die unten aufgeführten.
- Haare
- Glas
- Wasser
- Visuelle Effekte von Rauch oder Feuer
- Wolken
- Aufprall-Aufkleber
- Laub
Transparenz und Opazität
In der Unreal Engine funktioniert die Transparenz, indem jedem Pixel ein Opazität-Wert zwischen 0 und 1 zugewiesen wird. Wenn Opazität den Wert 1 hat, ist die Oberfläche völlig undurchsichtig, d. h. sie blockiert 100 % des auf sie treffenden Lichts. Wenn Opazität 0 ist, lässt die Oberfläche alles Licht durch. Opazitätswerte zwischen 0 und 1 ergeben Pixel, die teilweise durchsichtig sind. Die folgende Abbildung zeigt, wie die Opazitätswerte bei einem statischen Mesh von 0 auf 1 ansteigen.
Du kannst die Deckkraft auch mit einer Graustufentextur festlegen. Das folgende Bild zeigt, wie eine Textur dabei helfen kann, zu definieren, welche Teile eines Meshes transparent sein sollen und wie transparent sie sein sollen. Bei der Textur handelt es sich um einen Farbverlauf, der von oben nach unten von Schwarz (oder völlig transparent) nach Weiß (oder völlig undurchsichtig) verläuft. Die Bereiche in der Mitte haben einen unterschiedlichen Grad an Opazität, je nachdem, wie nah an Schwarz oder Weiß die Pixel in der Textur sind.
Transparenz in Materialien verwenden
Du kannst transparente Materialien mit den folgenden Schritten einrichten:
Dieses Tutorial verwendet Assets aus dem Unreal Engine Starter-Inhalt. Wenn du den Starter-Inhalt nicht in dein Projekt aufgenommen hast, lies den Abschnitt Migrieren -Inhaltsseite, um zu erfahren, wie du Inhalte zwischen Projekten verschieben kannst. So kannst du den Starter-Inhalt deinem aktuellen Projekt hinzufügen und musst kein neues erstellen.
-
Klicke zunächst mit der rechten Maustaste in den Inhaltsbrowser und wähle dann Material aus dem Abschnitt Basis-Asset erstellen des Kontextmenüs.
-
Benenne das Material TransparentMaterial und öffne es dann durch Doppelklick auf die Materialminiatur im Inhaltsbrowser. Es öffnet sich der Material-Editor.
-
Klicke in den Hintergrund des Materialdiagramms, um die Materialeigenschaften im Detail-Panel anzuzeigen. Ändere im Abschnitt Material den Überblendmodus von Undurchsichtig auf Transluzent.
- Nachdem der Überblendmodus nun korrekt eingestellt wurde, füge die folgenden Materialausdrücke zu deinem Diagramm hinzu. Du kannst die Knoten finden, indem du ihren Namen in die Suchleiste in der Materialpalette eingibst. Wenn du sie gefunden hast, klicke mit der linken Maustaste und ziehe sie aus der Palette in das Materialdiagramm.
-
Vektorparameter x 1
-
Skalarparameter x 1

-
-
Benenne den Vektorparameter-Knoten in Basisfarbe um und gib ihm einen Farbwert. Verbinde den Ausgang des Vektorparameter-Knotens mit dem Eingang Basisfarbe des Hauptmaterialknotens.
-
Benenne den Skalarparameter in Deckkraft um und gib ihm einen Standardwert von 0,5. Verbinde den Skalarparameter mit dem Eingang Opazität des Hauptshaderknotens.
-
Klicke auf Anwenden und dann Speichern in der Werkzeugleiste des Materialeditors, um das Material zu kompilieren und das Asset zu speichern.
-
Suche das Element TransparentMaterial im Inhaltsbrowser, klicke mit der rechten Maustaste auf die Miniaturansicht und wähle Materialinstanz erstellen im Kontextmenü.
-
Navigiere im Inhaltsbrowser zum Ordner Formen im Starter-Inhalt. Klicke mit der linken Maustaste und ziehe das Statische Mesh Shape_Sphere in das Sichtfenster und lasse die linke Maustaste los, um es im Level zu spawnen.
-
Suche das Asset TransparentMaterial_Instance im Inhaltsbrowser. Klicke mit der linken Maustaste, ziehe die Materialinstanz auf die Kugel und lasse die linke Maustaste los, um sie auf das Mesh anzuwenden.
-
Öffne die Materialinstanz durch Doppelklick auf sie im Inhaltsbrowser. Setze im Materialinstanz-Editor den Parameter OpacityAmount außer Kraft, indem du das Kästchen neben dem Parameternamen aktivierst. Nach der Aktivierung kannst du den Wert von OpacityAmount anpassen, um zu ändern, wie transparent das Objekt sein wird.
Transparenz und Reflexionen
Objekte, die Transparenz verwenden, können Szenenreflexionen anzeigen, wenn die folgenden Optionen eingestellt sind. Bedenke jedoch, dass viele durchscheinende Materialien mit aktivierten Reflexionen zu Leistungsproblemen führen können.
-
Öffne das TransparentMaterial, das oben erstellt wurde, durch Doppelklick im Inhaltsbrowser. Ändere im Detail-Panel unter der Kategorie Transluzenz den Beleuchtungsmodus von Volumetrisch ungerichtet auf Oberflächentransluzenz-Volumen.
-
Wähle im Materialdiagramm den Parameter OpacityAmount und dupliziere ihn zweimal, indem du CTRL + D auf der Tastatur drückst. Nach Abschluss sollte dein Materialdiagramm in etwa wie folgt aussehen.
-
Benenne die neuen Materialausdrucksknoten in Metallic und Roughness um. Setze den Standardwert für den Metallic-Materialausdruck auf 1,0 und setze den Standardwert für Roughness auf 0. Verbinde dann jeden Materialausdrucksknoten mit dem entsprechenden Eingang des Hauptmaterialknotens.
-
Klicke auf Anwenden und Speichern der Materialeditor-Symbolleiste und schließe dann den Materialeditor.
-
Du solltest nun Reflexionen auf den Kugeln in deinem Level sehen können.
Durch Anpassung der Parameter der Materialinstanz kannst du die Transparenz extrem unterschiedlich aussehen lassen.
Getönte oder farbige Transparenz
Mit dem Dünntransparent Schattierungsmodell und dem Materialausdruck kannst du getönte und farbige transparente Materialien, wie farbiges Glas und Kunststoffe, genau darstellen. Dieses Schattierungsmodell ermöglicht weiße Glanzlichter mit korrekt getönter Hintergrundfarbe für transparente Oberflächen.


Ein Beispiel für ein dünntransluzentes Materialdiagramm ist unten abgebildet.
Bild zum Vergrößern anklicken.
Konfiguriere das Material mit den folgenden Eigenschaften im Bereich Details:
- Ändere den Überblendmodus auf Transluzent.
- Ändere das Schattierungsmodell auf Dünntransluzent.
- Ändere in der Kategorie Transluzenz den Beleuchtungsmodus auf Oberflächenvorwärtsschattierung.
Füge dem Diagramm einen Ausdruck Dünntransluzentes Material hinzu und verbinde einen Constant3Vector oder einen Vektorparameter mit dem Eingang. Dieser Knoten steuert die Farbtönung der transparenten Oberfläche.
Transluzente farbige Schatten
Transluzente Materialien können in einigen Fällen farbige Schatten mit Lichtübertragung werfen. Die Lichtmenge, die durch das Material hindurchgeht, wird durch seine Opazitätswerte und die Lichtmenge, die auf das Material geworfen wird, bestimmt.
Transluzente farbige Schatten sind derzeit nur mit [Statischer Beleuchtung] (building-virtual-worlds/lighting-and-shadows/light-types-and-mobility/StaticLights) und [Lightmass] (building-virtual-worlds/lighting-and-shadows/global-illumination/lightmass-basics) möglich.
Weitere Informationen und Hinweise zur Verwendung findest du unter Farbige transluzente Schatten verwenden.
Transparenz und Performance
Transparenz, insbesondere beleuchtete Transparenz, kann schnell zu einem Leistungsengpass werden, wenn es zu viele transparente Objekte in einer Szene gibt. Der Begriff, der zur Beschreibung dieses Problems verwendet wird, ist „Überziehen". Überziehen tritt auf, wenn viele Objekte mit Transparenzen übereinander gerendert werden. Das Überziehen verursacht ein derartiges Leistungsproblem, weil die Kosten für das Rendern von Transparenz mit jeder weiteren Transparenzschicht, die du einführst, immer höher werden.
Um besser erkennen zu können, ob und wo dieses Problem auftritt, verfügt die Unreal Engine über einen speziellen Ansichtsmodus, den Modus Shader-Komplexität. Der Modus „Shader-Komplexität" zeigt an, wie komplex eine bestimmte Oberfläche zu rendern ist, indem er die Komplexität farblich darstellt. Je mehr Grün du siehst, desto billiger sind die Dinge zu rendern. Je mehr Rot zu sehen ist, desto teurer ist der Frame zu rendern. Gehe wie folgt vor, um den Ansichtsmodus „Shader-Komplexität" zu aktivieren.
-
Um Shader-Komplexität zu aktivieren, klicke auf die Option Ansichtsmodus am oberen Rand des Editor-Viewport. Standardmäßig ist der Ansichtsmodus auf Beleuchtet eingestellt.
-
Wähle die Option Shader-Komplexität aus dem Kontextmenü.
-
Nach dem Aktivieren des Ansichtsmodus Shader Komplexität sollte der Level-Viewport wie im folgenden Video aussehen.
Das Überziehen wird im Video sehr deutlich demonstriert, wenn sich die Kamera um die transparenten Kugeln im Level dreht. Wenn die Kugeln alle nebeneinander angezeigt werden, gibt es kein Überziehen und der Viewport ist überwiegend grün. Wenn sich alle sechs Kugeln in der gleichen Sichtlinie befinden, werden die Bereiche mit der größten Überlappung hellrot, um ein Überziehen anzuzeigen. Es ist zwar nicht zu 100 Prozent möglich oder ratsam, alle Überziehungen zu beseitigen, aber dieser Ansichtsmodus kann sehr hilfreich sein, wenn du herausfinden willst, wo genau deine Leistungsprobleme herkommen könnten.
Transluzenz-Sortierpriorität
Wenn mehrere transparente Objekte in einer Szene nahe beieinander liegen, kann es vorkommen, dass die Engine Probleme hat zu bestimmen, welches Objekt vor oder hinter den anderen transparenten Objekten gerendert werden soll. Das folgende Beispiel demonstriert dies anhand der Materialien von oben und den beleuchteten Dampf-VFX aus dem Starter-Inhalt.
Beachte, wie der Dampf zunächst vor den Meshes gerendert wird und dann plötzlich hinter jeder Kugel auftaucht. Um dies zu verhindern, muss die Transluzenz-Sortierpriorität so eingestellt werden, dass die Rauch-VFX immer über die anderen Transluzenzen in der Szene gerendert werden. Gehe wie folgt vor, um die Transluzenz-Sortierpriorität für die VFX zu ändern.
-
Wähle zunächst das Objekt oder die Objekte aus, die du über alle anderen Transluzenzen im Level legen möchtest. In diesem Fall wählst du das VFX-Partikelsystem.
-
Navigiere im Detail-Panel zum Abschnitt Rendering und erweitere dann die Unterkategorie Erweitert.
-
Suche in der neuen Liste der Optionen nach Transluzenz-Sortierpriorität und gib dann einen Wert von 100 ein.
Standardmäßig hat alles, was zu einem Level hinzugefügt wird, eine Transluzenz-Sortierpriorität von 0. Wenn du willst, dass ein transparentes Element immer über alles andere gezeichnet wird, das transparent ist, verwende positive Zahlen. Wenn du willst, dass ein transparentes Element immer hinter alles andere gezeichnet wird, das transparent ist, verwende negative Zahlen.
-
Nun sieh dir die Dampf-VFX in der Szene an. Wenn die Transparenz-Sortierpriorität auf 100 eingestellt ist, wird der Dampf immer über den anderen durchsichtigen Objekten gezeichnet.
-
Wenn du die Transluzenz-Sortierpriorität auf -100 setzt, wird der Dampf immer hinter anderen durchsichtigen Objekten gezeichnet.
Das Anpassen der Transluzenz-Sortierpriorität kann zwar das Sortierproblem im Level beheben, es könnte aber neue Sortierprobleme beim Spawnen von Effekten oder Objekten während des Spiels verursachen. Aus diesem Grund ist es ratsam, die Transluzenz-Sortierpriorität zu definieren und festzulegen, wo sie verwendet werden soll. Du könntest zum Beispiel sagen, dass alle gespawnten Effekte eine Transluzenz-Sortierpriorität von 100 haben werden. Wenn es also zu Sortierproblemen in der Ebene kommt, kannst du die Objekte in der Ebene Transluzenz-Sortierpriorität auf eine beliebige Zahl bis 99 einstellen. Auf diese Weise werden die gespawnten Spieleffekte immer über allem anderen gerendert, unabhängig davon, welche Transluzenz-Sortierpriorität Objekte im Level haben.
Zusammenfassung
Transparenz ist ein sehr leistungsfähiges Werkzeug, mit dem du deine 3D-Projekte zum Leben erwecken kannst. Versuche, die Anzahl der transparenten Objekte, die Reflexionen verwenden, so gering wie möglich zu halten, da dies leicht zu Leistungseinbußen führen kann. Schließlich solltest du den Shader-Komplexitätsmodus sowohl im Editor als auch während des Spiels regelmäßig überprüfen, um sicherzustellen, dass die Überziehung der Transparenz auf ein Minimum reduziert wird.