Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Standardmaterial 3D und ORM-Material 3D

Einführung

StandardMaterial3D und ORMMaterial3D (Occlusion, Rauheit, Metallisch) sind Standard-3D-Materialien, die darauf abzielen, die meisten Features zu bieten, die Künstler für ein Material brauchen, ohne Shader-Code schreiben zu müssen. Sie können jedoch in Shader-Code umgewandelt werden, wenn zusätzliche Features benötigt werden.

In diesem Tutorial werden die Parameter beider Materialien erläutert.

Es gibt 4 Möglichkeiten, diese Materialien zu einem Objekt hinzuzufügen. Ein Material kann in der Property Material des Meshs hinzugefügt werden. Es kann in der Property Material des Nodes, der das Mesh verwendet (z. B. ein MeshInstance3D-Node), in der Property Material-Überschreibung des Nodes, der das Mesh verwendet, und im Material-Überschreibung hinzugefügt werden.

../../_images/add_material.webp

Wenn Sie dem Mesh selbst ein Material hinzufügen, erhält das Mesh bei jeder Verwendung dieses Material. Wenn Sie dem Node mithilfe des Meshs ein Material hinzufügen, wird das Material nur von diesem Node verwendet und überschreibt auch die Material-Property des Meshes. Wenn ein Material in der Property Material-Überschreibung des Nodes hinzugefügt wird, wird es nur von diesem Node verwendet. Außerdem werden die reguläre Material-Property des Nodes und die Material-Property des Meshs überschrieben.

Die Property Material-Überschreibung rendert ein Material über das aktuelle Material, das vom Mesh verwendet wird. Dies kann zum Beispiel verwendet werden, um einen transparenten Schild-Effekt auf ein Mesh zu legen.

BaseMaterial 3D-Einstellungen

StandardMaterial3D hat viele Einstellungen, die das Aussehen eines Materials bestimmen. Alle diese Einstellungen befinden sich unter der Kategorie BaseMaterial3D

../../_images/spatial_material1.png

ORM-Materialien sind fast genau dasselbe, mit einem Unterschied. Anstelle von separaten Einstellungen und Texturen für Occlusion, Rauheit und Metallisch gibt es eine einzige ORM-Textur. Die verschiedenen Farbkanäle dieser Textur werden für jeden Parameter verwendet. Programme wie Substance Painter und Armor Paint bieten die Möglichkeit, in diesem Format zu exportieren. Bei diesen beiden Programmen geschieht dies mit der Exportvorgabe für die Unreal Engine, die ebenfalls ORM-Texturen verwendet.

Transparenz

Standardmäßig sind die Materialien in Godot undurchsichtig. Dies ist schnell zu rendern, aber es bedeutet, dass man nicht durch das Material hindurchsehen kann, selbst wenn Sie eine transparente Textur in der Eigenschaft Albedo > Textur verwenden (oder Albedo > Farbe auf eine transparente Farbe einstellen).

Um durch ein Material hindurchsehen zu können, muss das Material transparent gemacht werden. Godot bietet mehrere Transparenz-Modi:

  • Deaktiviert: Das Material ist undurchsichtig. Dies ist das am schnellsten zu rendernde Material, das alle Rendering-Funktionen unterstützt.

  • Alpha: Das Material ist transparent. Halbtransparente Bereiche werden mit Blending gezeichnet. Dies ist langsam zu rendern, aber es ermöglicht eine partielle Transparenz (auch bekannt als Transluzenz). Materialien, die Alpha-Blending verwenden, können auch keine Schatten werfen und sind bei Spiegelungen im Screen-Space nicht sichtbar.

    • Alpha ist gut geeignet für Partikeleffekte und VFX.

  • Alpha-Schere: Material ist transparent. Halbtransparente Bereiche, deren Deckkraft unter der Alphascherenschwelle liegt, werden nicht gezeichnet (oberhalb dieser Schwelle werden sie als undurchsichtig gezeichnet). Dies ist schneller zu rendern als Alpha und hat keine Probleme mit der Sortierung der Transparenz. Der Nachteil ist, dass dies zu einer "Alles-oder-Nichts"-Transparenz führt, bei der keine Zwischenwerte möglich sind. Materialien, die Alpha-Schere verwenden, können Schatten werfen.

    • Die Alpha-Schere ist ideal für Laub und Zäune, da diese harte Kanten haben und richtig sortiert werden müssen, um gut auszusehen.

  • Alpha-Hash: Das Material ist transparent. Halbtransparente Bereiche werden mit Dithering gezeichnet. Dies ist ebenfalls eine "Alles-oder-Nichts"-Transparenz, aber Dithering hilft bei der Darstellung teilweise undurchsichtiger Bereiche mit begrenzter Präzision, abhängig von der Auflösung des Viewports. Materialien, die Alpha-Hash verwenden, können Schatten werfen.

    • Alpha-Hash eignet sich für realistisch aussehendes Haar, obwohl stilisiertes Haar mit Alpha-Schere besser funktionieren kann.

  • Tiefen-Vordurchlauf: Hierbei werden zuerst die völlig undurchsichtigen Pixel des Objekts über die Undurchsichtigkeits-Pipeline gerendert, dann wird der Rest mit Alpha-Blending gerendert. Dies ermöglicht eine fast korrekte Sortierung der Transparenz (wenn auch nicht vollständig, da teilweise transparente Regionen immer noch eine falsche Sortierung aufweisen können). Materialien mit Tiefen-Vordurchlauf können Schatten werfen.

Bemerkung

Godot erzwingt automatisch, dass das Material transparent mit Alpha-Blending ist, wenn eine dieser Bedingungen erfüllt ist:

  • Setzen des Transparenzmodus auf Alpha (wie hier beschrieben).

  • Setzen eines anderen Blending-Modus als des Standardmodus Mix

  • Aktivieren von Brechung, Nahausblendung oder Fernausblendung.

Vergleich zwischen Alpha-Blending (links) und Alpha-Schere (rechts)-Transparenz:

../../_images/spatial_material12.png

Warnung

Alpha-Blending-Transparenz hat mehrere Einschränkungen:

  • Alpha-Blending-Materialien werden deutlich langsamer gerendert, insbesondere wenn sie sich überlappen.

  • Bei Alpha-Blending-Materialien kann es zu Sortierproblemen kommen, wenn sich transparente Flächen überlappen. Das bedeutet, dass Flächen möglicherweise in der falschen Reihenfolge gerendert werden, wobei Flächen im hinteren Bereich vor denen zu liegen scheinen, die sich tatsächlich näher an der Kamera befinden.

  • Alpha-Blending-Materialien werfen keine Schatten, obwohl sie Schatten empfangen können.

  • Alpha-Blending-Materialien erscheinen in keiner Reflexion (außer in Reflexions-Probes).

  • Screen-Space-Reflexionen und scharfe SDFGI-Reflexionen erscheinen nicht auf Alpha-Blending-Materialien. Wenn SDFGI aktiviert ist, werden raue Reflexionen unabhängig von der Materialrauheit als Fallback verwendet.

Bevor Sie den Transparenzmodus Alpha verwenden, sollten Sie immer abwägen, ob nicht ein anderer Transparenzmodus für Ihre Bedürfnisse besser geeignet ist.

Alpha-Antialiasing

Bemerkung

Diese Property ist nur sichtbar, wenn der Transparenzmodus Alpha-Schere oder Alpha-Hash ist.

Alpha-Schere- und Alpha-Hash-Materialien sind zwar schneller zu rendern als Alpha-Blending-Materialien, weisen aber harte Kanten zwischen undurchsichtigen und transparenten Bereichen auf. Es ist zwar möglich, auf Post-Processing basierende Antialiasing-Techniken wie FXAA und TAA zu verwenden, doch ist dies nicht immer erwünscht, da diese Techniken das Endergebnis tendenziell unschärfer aussehen lassen oder Ghosting-Artefakte aufweisen.

Es sind 3 Alpha-Antialiasing-Modi verfügbar:

  • Deaktiviert: Kein Alpha-Antialiasing. Kanten von transparenten Materialien erscheinen verzerrt, es sei denn, es wird eine auf Post-Processing basierende Antialiasing-Lösung verwendet.

  • Alpha Kanten-Blending: Ergibt einen weichen Übergang zwischen undurchsichtigen und transparenten Bereichen. Auch bekannt als "Alpha zu Coverage".

  • Alpha Kanten-Clip: Ergibt einen scharfen, aber immer noch Antialiasing-Übergang zwischen undurchsichtigen und transparenten Bereichen. Auch bekannt als "Alpha zu Coverage + Alpha zu Eins".

Wenn der Alpha-Antialiasing-Modus auf Alpha Kanten-Blending oder Alpha Kanten-Clip eingestellt ist, wird unten im Inspektor eine neue Property Alpha-Antialiasing-Kante sichtbar. Diese Property steuert den Schwellenwert, unterhalb dessen Pixel transparent gemacht werden sollen. Während Sie bereits einen Schwellenwert für die Alpha-Schere definiert haben (wenn Sie nur Alpha-Schere verwenden), wird dieser zusätzliche Schwellenwert verwendet, um einen fließenden Übergang zwischen undurchsichtigen und transparenten Pixeln zu erreichen. Alpha-Antialiasing-Kante muss immer auf einen Wert gesetzt werden, der unter der Alphascherenschwelle liegt. Der Standardwert von 0.3 ist ein vernünftiger Wert bei einer Alphascherenschwelle von 0.5, aber denken Sie daran, diese Alpha-Antialiasing-Kante anzupassen, wenn Sie die Alphascherenschwelle verändern.

Wenn Sie feststellen, dass der Antialiasing-Effekt nicht effektiv genug ist, versuchen Sie, die Alpha-Antialiasing-Kante zu erhöhen, während Sie sicherstellen, dass sie unter der Alphascherenschwelle liegt (wenn das Material Alpha-Schere verwendet). Wenn Sie andererseits feststellen, dass sich das Aussehen der Textur sichtbar ändert, wenn sich die Kamera näher an das Material heranbewegt, versuchen Sie, Alpha-Antialiasing-Kante zu verringern.

Wichtig

Um optimale Ergebnisse zu erzielen, sollte MSAA 3D in den Projekteinstellungen bei Verwendung von Alpha-Antialiasing auf mindestens 2× eingestellt werden. Der Grund dafür ist, dass diese Funktion auf Alpha zu Coverage angewiesen ist, eine Funktion, die von MSAA bereitgestellt wird.

Ohne MSAA wird ein festes Dithering-Muster auf die Kanten des Materials angewendet, das nicht sehr effektiv ist, um Kanten zu glätten (obwohl es trotzdem ein wenig helfen kann).

Blending-Modus

Steuert den Blending-Modus für das Material. Beachten Sie, dass jeder andere Modus als Mix das Objekt zwingt, die Transparenz-Pipeline zu durchlaufen.

  • Mix: Default-Blending-Modus, Alpha steuert, wie stark das Objekt sichtbar ist.

  • Hinzufügen: Die endgültige Farbe des Objekts wird zur Farbe des Bildschirms hinzugefügt, was sich gut für Fackeln oder feuerähnliche Effekte eignet.

  • Sub: Die endgültige Farbe des Objekts wird von der Farbe des Bildschirms subtrahiert.

  • Mul: Die endgültige Farbe des Objekts wird mit der Farbe des Bildschirms multipliziert.

../../_images/spatial_material8.png

Cull-Modus

Bestimmt, welche Seite des Objekts nicht gezeichnet wird, wenn Rückseiten gerendert werden:

  • Rückseite: Die Rückseite des Objekts wird gecullt, wenn sie nicht sichtbar ist (Default).

  • Vorderseite: Die Vorderseite des Objekts wird gecullt, wenn sie nicht sichtbar ist.

  • Deaktiviert: Wird für Objekte verwendet, die zweiseitig sind (es wird kein Culling durchgeführt).

Bemerkung

Standardmäßig hat Blender Backface Culling bei Materialien deaktiviert und exportiert Materialien so, wie sie in Blender gerendert werden. Das bedeutet, dass Materialien in Godot ihren Cull-Modus auf Deaktiviert gesetzt haben. Dies kann die Performance beeinträchtigen, da Rückseiten gerendert werden, auch wenn sie von anderen Flächen gecullt werden. Um dieses Problem zu beheben, aktivieren Sie Backface Culling in Materials-Tab von Blender und exportieren Sie die Szene dann wieder nach glTF.

Tiefenzeichenmodus

Gibt an, wann das Tiefenrendern stattfinden muss.

  • Nur undurchsichtig (Default): Die Tiefe wird nur für undurchsichtige Objekte gezeichnet.

  • Immer: Tiefenzeichnung wird sowohl für undurchsichtige als auch für transparente Objekte verwendet.

  • Niemals: Es findet keine Tiefenzeichnung statt (nicht zu verwechseln mit der Option Keine Tiefenprüfung unten).

  • Tiefen-Vordurchlauf: Bei transparenten Objekten wird zuerst ein Undurchsichtigkeits-Durchlauf mit den undurchsichtigen Teilen gemacht, dann wird die Transparenz darüber gezeichnet. Verwenden Sie diese Option bei transparentem Gras oder Baumblättern.

../../_images/material_depth_draw.png

Keine Tiefenprüfung

Damit nahe Objekte vor weit entfernten Objekten erscheinen, werden Tiefenprüfungen durchgeführt. Das Deaktivieren hat zur Folge, dass Objekte vor (oder hinter) allem anderen angezeigt werden.

Das Deaktivieren dieser Option ist am sinnvollsten, um Anzeigegeräte im Raum zu zeichnen und funktioniert sehr gut mit der Property Renderpriorität von Material (siehe unten auf dieser Seite).

../../_images/spatial_material3.png

Shading

Shading-Modus

Godot hat dank des Tiefenvordurchlaufs mehr oder weniger einheitliche Kosten pro Pixel. Alle Beleuchtungsberechnungen werden durchgeführt, indem der Beleuchtungs-Shader für jedes Pixel ausgeführt wird.

Da diese Berechnungen kostspielig sind, kann die Performance in einigen Fällen erheblich beeinträchtigt werden, z.B. beim Zeichnen mehrerer Transparenz-Ebenen (was in Partikelsystemen üblich ist). In diesen Fällen kann die Umstellung auf Vertex-Beleuchtung hilfreich sein.

Darüber hinaus kann die Umstellung auf Vertex-Beleuchtung auf Low-End- oder Mobilgeräten die Renderleistung erheblich verbessern.

../../_images/spatial_material2.png

Beachten Sie, dass bei aktivierter Vertex-Beleuchtung nur gerichtete Beleuchtung Schatten erzeugen kann (aus Performancegründen).

In manchen Fällen möchten Sie jedoch vielleicht nur die Albedo (Farbe) anzeigen und den Rest ignorieren. Zu diesem Zweck können Sie den Shading-Modus auf "nicht shaded" einstellen

../../_images/spatial_material26.png

Diffusmodus

Gibt den Algorithmus an, der bei der diffusen Streuung des Lichts beim Auftreffen auf das Objekt verwendet wird. Die Vorgabe ist Burley. Es sind auch andere Modi verfügbar:

  • Burley: Default-Modus, der ursprüngliche Diffus-Algorithmus von Disney Principled PBS.

  • Lambert: Wird nicht von Rauheit beeinflusst.

  • Lambert-Wrap: Erweitert Lambert, um mehr als 90 Grad abzudecken, wenn die Rauheit zunimmt. Eignet sich hervorragend für Haare und die Simulation von günstigem Subsurface Scattering. Diese Implementierung ist energiesparend.

  • Oren Nayar: Diese Implementierung zielt darauf ab, Mikrooberflächen zu berücksichtigen (mittels der Rauheit). Funktioniert gut für lehmartige Materialien und einige Arten von Stoffen.

  • Toon: Bietet einen harten Schnitt für die Beleuchtung, wobei die Glättung durch die Rauheit beeinflusst wird. Es wird empfohlen, den Beitrag des Himmels in den Umgebungslichteinstellungen der Environment zu deaktivieren oder das Umgebungslicht im StandardMaterial3D zu deaktivieren, um einen besseren Effekt zu erzielen.

../../_images/spatial_material6.png

Spiegelndmodus

Gibt an, wie der spiegelnde Blob gerendert werden soll. Der spiegelnde Blob stellt den Umriss einer Lichtquelle dar, die im Objekt reflektiert wird.

  • SchlickGGX: Der heutzutage von PBR-3D-Engines am häufigsten verwendete Blob.

  • Blinn: In früheren Engine-Generationen üblich. Heutzutage nicht mehr sinnvoll, aber aus Kompatibilitätsgründen hier belassen.

  • Phong: Wie oben.

  • Toon: Erstellt einen Toon-Blob, dessen Größe sich je nach Rauheit ändert.

  • Disabled: Manchmal ist der Blob im Weg. Verschwinde!

../../_images/spatial_material7.png

Umgebungslicht deaktivieren

Lässt das Objekt keine Umgebungsbeleuchtung erhalten, die es sonst beleuchten würde.

Nebel Deaktivieren

Macht das Objekt unempfindlich gegenüber tiefenbasiertem oder volumetrischem Nebel. Dies ist nützlich für Partikel oder andere additiv überblendete Materialien, die andernfalls die Form des Meshes zeigen würden (auch an Stellen, an denen es ohne den Nebel unsichtbar wäre).

Vertex-Farbe

Mit dieser Einstellung können Sie festlegen, was standardmäßig mit Vertex-Farben aus Ihrer 3D-Modellierungsanwendung geschehen soll. Standardmäßig werden sie ignoriert.

../../_images/spatial_material4.png

Als Albedo verwenden

Wenn Sie diese Option auswählen, wird die Vertex-Farbe als Albedo-Farbe verwendet.

Ist sRGB

Die meisten 3D-Modellierungs-Tools exportieren die Vertexfarben als sRGB, so dass das Aktivieren dieser Option dazu beiträgt, dass sie korrekt aussehen.

Albedo

Albedo ist die Grundfarbe für das Material, auf das alle anderen Einstellungen angewendet werden. Bei der Einstellung Unschattiert ist dies die einzige sichtbare Farbe. In früheren Versionen von Godot wurde dieser Kanal Diffus genannt. Die Namensänderung erfolgte hauptsächlich, weil diese Farbe in PBR (Physically Based Rendering) viel mehr Berechnungen beeinflusst als nur den diffusen Beleuchtungspfad.

Albedofarbe und -textur können zusammen verwendet werden, da sie multipliziert werden.

Alpha-Kanal in Albedofarbe und -textur wird auch für die Objekttransparenz verwendet. Wenn Sie eine Farbe oder Textur mit Alpha-Kanal verwenden, stellen Sie sicher, dass entweder Transparenz oder Alpha-Schere aktiviert ist, damit dies funktioniert.

Metallisch

Godot verwendet aufgrund seiner Einfachheit ein Metallmodell gegenüber konkurrierenden Modellen. Dieser Parameter definiert, wie reflektierend das Material ist. Je reflektierender, desto weniger diffuses/Umgebungslicht beeinflusst das Material und desto mehr Licht wird reflektiert. Dieses Modell wird als "energiesparend" bezeichnet.

Der Parameter Spiegelnd ist ein allgemeiner Wert für das Reflexionsvermögen (im Gegensatz zu Metallisch ist dies nicht energiesparend. Belassen Sie ihn daher bei 0.5 und verändern Sie ihn nur, wenn Sie dies benötigen).

Das minimale interne Reflexionsvermögen beträgt 0.04, daher ist es unmöglich, ein Material wie im wirklichen Leben vollkommen ohne Reflexion zu erstellen.

../../_images/spatial_material13.png

Rauheit

Rauheit beeinflusst die Art und Weise, wie Reflexion stattfindet. Ein Wert von 0 macht es zu einem perfekten Spiegel, während ein Wert von 1 die Reflexion vollständig verwischt (Simulation einer natürlichen Mikrooberfläche). Die meisten gängigen Materialtypen können mit der richtigen Kombination von Metallisch und Rauheit erzielt werden.

../../_images/spatial_material14.png

Emission

Emission gibt an, wie viel Licht vom Material emittiert wird (denken Sie daran, dass dies nicht das Licht um die Geometrie herum einschließt, es sei denn, VoxelGI oder SDFGI werden verwendet). Dieser Wert wird dem endgültigen Bild hinzugefügt und wird nicht durch andere Beleuchtungen in der Szene beeinflusst.

../../_images/spatial_material15.png

Normal Maps

Mit Normal Mapping können Sie eine Textur festlegen, die feinere Formdetails darstellt. Dabei wird die Geometrie nicht verändert, sondern nur der Einfallswinkel des Lichts. In Godot werden nur die roten und grünen Kanäle der Normal Maps verwendet, um eine bessere Komprimierung und eine größere Kompatibilität zu erreichen.

../../_images/spatial_material16.png

Bemerkung

Godot benötigt die Normal Map, um die X+, Y+ und Z+-Koordinaten zu verwenden, dies ist bekannt als OpenGL-Stil. Wenn Sie ein Material importiert haben, das mit einer anderen Engine verwendet werden soll, kann es auch im DirectX-Stil vorliegen. In diesem Fall muss die Normal Map konvertiert werden, damit ihre Y-Achse gespiegelt wird.

Weitere Informationen über Normal Maps (einschließlich einer Tabelle für die Koordinatenreihenfolge populärer Engines) finden Sie hier.

Umrandung

Einige Gewebe haben einen sehr feinen Flaum, durch den Licht gestreut wird. Godot emuliert dies mit dem Parameter Umrandung. Im Gegensatz zu anderen Randbeleuchtungsimplementierungen, die nur den Emissionskanal verwenden, berücksichtigt diese tatsächlich Licht (kein Licht bedeutet keine Umrandung). Dies macht den Effekt wesentlich glaubwürdiger.

../../_images/spatial_material17.png

Die Umrandung hängt von der Rauheit ab, und es gibt einen speziellen Parameter der angibt, wie er gefärbt werden muss. Wenn Tint 0 ist, wird die Farbe des Lichts für die Umrandung verwendet. Wenn Tint 1 ist, wird das Albedo des Materials verwendet. Die Verwendung von Zwischenwerten funktioniert im Allgemeinen am besten.

Klarlack

Der Parameter Klarlack wird verwendet, um dem Material einen zweiten Durchgang einer transparenten Schicht hinzuzufügen. Dies ist bei Autolacken und Spielzeug üblich. In der Praxis handelt es sich um einen kleineren spiegelnden Fleck, der über das vorhandene Material gelegt wird.

../../_images/clearcoat_comparison.png

Anisotropie

Dadurch wird die Form des spiegelnden Blobs verändert und am Tangentenraum ausgerichtet. Anisotropie wird häufig bei Haaren verwendet, oder um Materialien wie gebürstetes Aluminium realistischer zu gestalten. Sie funktioniert besonders gut in Kombination mit Flowmaps.

../../_images/spatial_material18.png

Ambient Occlusion

Es ist möglich, eine gebackene Ambient Occlusion-Karte anzugeben. Diese Karte wirkt sich darauf aus, wie viel Umgebungslicht jede Oberfläche des Objekts erreicht (standardmäßig wirkt sie sich nicht auf das direkte Licht aus). Es ist zwar möglich, Screen-Space Ambient Occlusion (SSAO) zur Erzeugung von Ambient Occlusion zu verwenden, aber nichts geht über die Qualität einer gut gebackenen AO-Karte. Es wird empfohlen, Ambient Occlusion wann immer möglich zu backen.

../../_images/spatial_material19.png

Höhe

Wenn Sie eine Tiefenkarte für ein Material festlegen, wird eine strahlenförmige Suche durchgeführt, um die korrekte Verschiebung von Hohlräumen entlang der Blickrichtung zu emulieren. Dies ist keine echte hinzugefügte Geometrie, sondern eine Illusion von Tiefe. Bei komplexen Objekten funktioniert das vielleicht nicht, aber bei Texturen erzeugt es einen realistischen Tiefeneffekt. Um optimale Ergebnisse zu erzielen, sollte Tiefe zusammen mit Normal Mapping verwendet werden.

../../_images/spatial_material20.png

Subsurface Scattering

Dieser Effekt emuliert Licht das die Oberfläche eines Objekts durchdringt, gestreut wird und dann austritt. Es ist nützlich um realistische Haut, Marmor, farbige Flüssigkeiten usw. zu erstellen.

../../_images/spatial_material21.png

Hintergrundbeleuchtung

Hiermit wird gesteuert, wie viel Licht von der beleuchteten Seite (sichtbar für Licht) auf die dunkle Seite (gegenüber dem Licht) übertragen wird. Dies funktioniert gut für dünne Objekte wie Pflanzenblätter, Gras, menschliche Ohren usw.

Brechung

Wenn die Brechung aktiviert ist, versucht Godot, Informationen von der Rückseite des gerenderten Objekts zu erhalten. Dies ermöglicht eine Verzerrung der Transparenz, die der Brechung im wirklichen Leben ähnelt.

Denken Sie daran, eine transparente Albedo-Textur zu verwenden (oder den Alpha-Kanal der Albedo-Farbe zu reduzieren), um die Brechung sichtbar zu machen, da die Brechung auf Transparenz angewiesen ist, um einen sichtbaren Effekt zu haben.

In der Property Brechungstextur kann optional eine Normal Map angegeben werden, um die Brechungsrichtung auf Pixel-Basis zu verzerren.

../../_images/spatial_material23.png

Bemerkung

Die Brechung ist als Screen-Space-Effekt implementiert und zwingt das Material, transparent zu sein. Dadurch ist der Effekt relativ schnell, was jedoch einige Einschränkungen mit sich bringt:

  • Transparenzsortierungs- Probleme können auftreten.

  • Das lichtbrechende Material kann sich nicht an sich selbst oder an anderen transparenten Materialien brechen. Ein lichtbrechendes Material, das sich hinter einem anderen transparenten Material befindet, ist unsichtbar.

  • Objekte außerhalb des Bildschirms können nicht in der Brechung erscheinen. Dies ist besonders bei hohen Werten für die Brechungsstärke zu beobachten.

  • Undurchsichtige Materialien vor dem lichtbrechenden Material haben scheinbar "gebrochene" Kanten, obwohl sie das nicht sollten.

Details

Godot ermöglicht die Verwendung von sekundärer Albedo und Normal Maps, um eine Detailtextur zu erzeugen, die auf viele Arten überblendet werden kann. Durch die Kombination mit sekundären UV- oder triplanaren Modi können viele interessante Texturen erzielt werden.

../../_images/spatial_material24.png

Es gibt verschiedene Einstellungen, die steuern, wie Details verwendet werden.

Maske: Die Detailmaske ist ein Schwarzweißbild, mit dem gesteuert wird, wo das Blending auf einer Textur stattfindet. Weiß steht für die Detailtexturen, Schwarz für die normalen Materialtexturen, verschiedene Graustufen für die teilweises Blending der Materialtexturen und Detailtexturen.

Mischmodus: Diese vier Modi steuern, wie die Texturen ineinander überblenden..

  • Mischen: Kombiniert die Pixelwerte der beiden Texturen. Bei Schwarz wird nur die Materialtextur angezeigt, bei Weiß nur die Detailtextur. Graue Werte erzeugen weiches Blending zwischen den beiden.

  • Hinzufügen: Addiert die Pixelwerte der einen Textur mit der anderen. Im Gegensatz zum Mischmodus werden beide Texturen in den weißen Bereichen einer Maske vollständig gemischt und nicht in den grauen Bereichen. Die ursprüngliche Textur bleibt bei Schwarz weitgehend unverändert

  • Sub: Subtrahiert die Pixelwerte der einen Textur von der anderen. Die zweite Textur wird in den weißen Teilen einer Maske vollständig subtrahiert, in den schwarzen Teilen nur ein wenig, in den grauen Teilen je nach der genauen Textur unterschiedlich stark.

  • Mul: Multipliziert die RGB-Kanalnummern für jedes Pixel der oberen Textur mit den Werten für das entsprechende Pixel der unteren Textur.

Albedo: Hier können Sie eine Albedo-Textur einfügen, die Sie überblenden möchten. Wenn hier nichts eingetragen ist, wird die Textur standardmäßig als weiß interpretiert.

Normale: Hier können Sie eine Normalen-Textur einfügen, die Sie überblenden möchten. Wenn nichts in diesem Slot ist, wird es als eine flache Normal Map interpretiert. Dies kann auch dann verwendet werden, wenn für das Material keine Normal Map aktiviert ist.

UV1 und UV2

Godot unterstützt zwei UV-Kanäle pro Material. Sekundär-UV ist oft nützlich für Ambient Occlusion oder Emission (gebackenes Licht). UVs können skaliert und versetzt werden, was bei der Verwendung sich wiederholender Texturen nützlich ist.

Triplanares Mapping

Triplanares Mapping wird sowohl für UV1 als auch für UV2 unterstützt. Dies ist ein alternativer Weg, um Texturkoordinaten zu erhalten, manchmal auch "Autotextur" genannt. Texturen werden in X, Y und Z abgetastet und durch die Normalen überlagert. Triplanares Mapping kann entweder im World-Space oder im Object-Space durchgeführt werden.

In der Abbildung unten sehen Sie, wie alle Primitive das gleiche Material mit der Welt triplanar teilen, so dass die Ziegelsteintextur nahtlos zwischen ihnen übergeht.

../../_images/spatial_material25.png

World-Triplanar

Bei der Verwendung der triplanaren Abbildung wird sie im Local-Space des Objekts berechnet. Mit dieser Option wird stattdessen der World-Space verwendet.

Sampling

Filter

Die Filtermethode für die von dem Material verwendeten Texturen. Siehe diese Seite für eine vollständige Liste der Optionen und ihre Beschreibung.

Wiederholen

ob die vom Material verwendeten Texturen sich wiederholen, und wie sie sich wiederholen. Siehe diese Seite für eine vollständige Liste der Optionen und ihre Beschreibung.

Schatten

Empfange keine Schatten

Lässt das Objekt keinen Schatten empfangen, der sonst darauf geworfen würde.

Schatten zur Deckkraft verwenden

Durch die Beleuchtung wird das Alpha so geändert, dass schattierte Bereiche undurchsichtig und nicht schattierte Bereiche transparent sind. Nützlich zum Überlagern von Schatten auf einen Kamera-Feed in AR.

Billboard

Billboard-Modus

Aktiviert den Billboard-Modus für Zeichenmaterialien. Damit wird gesteuert, wie das Objekt der Kamera zugewandt ist:

  • Deaktiviert: Der Billboard-Modus ist deaktiviert.

  • Aktiviert: Der Billboard-Modus ist aktiviert. Die Z-Achse des Objekts zeigt immer in Richtung der Betrachtungsebene der Kamera.

  • Y-Billboard: Die X-Achse des Objekts wird immer an der Betrachtungsebene der Kamera ausgerichtet.

  • Partikel-Billboard: Am besten geeignet für Partikelsysteme, da es die Angabe von Flipbook-Animationen erlaubt.

../../_images/spatial_material9.png

Der Abschnitt Partikelanimation ist nur sichtbar, wenn der Billboard-Modus Partikel-Billboard ist.

Billboard-Skalierung beibehalten

Ermöglicht die Skalierung eines Mesh im Billboard-Modus.

Wachstum

Die Objektvertices wachsen in der Richtung, in die ihre Normalen zeigen:

../../_images/spatial_material10.png

Dies wird üblicherweise verwendet, um günstige Umrisse zu erstellen. Fügen Sie einen zweiten Materialdurchlauf hinzu, machen Sie ihn schwarz und schattenlos, kehren Sie das Culling um (Cull Vorderseite) und fügen Sie etwas Wachstum hinzu:

../../_images/spatial_material11.png

Transformation

Feste Größe

Dadurch wird das Objekt unabhängig von der Entfernung mit derselben Größe gerendert. Dies ist vor allem für Anzeigegeräte (keine Tiefenprüfung und hohe Renderpriorität) und einige Arten von Billboards nützlich.

Punktgröße verwenden

Diese Option ist nur wirksam, wenn die gerenderte Geometrie aus Punkten besteht (beim Import aus einer 3D-Modellierungssoftware besteht sie im Allgemeinen aus Dreiecken). Wenn dies der Fall ist, kann die Größe dieser Punkte geändert werden (siehe unten).

Punktgröße

Geben Sie beim Zeichnen von Punkten die Punktgröße in Pixel an.

Übertragung

Hiermit wird gesteuert, wie viel Licht von der beleuchteten Seite (sichtbar für Licht) auf die dunkle Seite (gegenüber dem Licht) übertragen wird. Dies funktioniert gut für dünne Objekte wie Pflanzenblätter, Gras, menschliche Ohren usw.

../../_images/spatial_material22.png

Nah- und Fernausblendung

Godot ermöglicht es, Materialien in Abhängigkeit von der Nähe zueinander und vom Abstand zum Betrachter auszublenden. Die Nahausblendung ist nützlich für Effekte wie weiche Partikel oder eine Wassermasse mit sanftem Übergang zu den Ufern.

../../_images/spatial_material_proxfade.gif

Die Fernausblendung ist nützlich für Lichtschächte oder Blinker, die erst ab einer bestimmten Entfernung vorhanden sind.

Beachten Sie, dass das Aktivieren von "Nahausblendung" oder "Fernausblendung" mit dem Modus Pixel Alpha das Alpha-Blending aktiviert. Alpha-Blending ist GPU-intensiver und kann Probleme bei der Transparenzsortierung verursachen. Das Alpha-Blending deaktiviert auch viele Materialfunktionen, wie z. B. die Fähigkeit, Schatten zu werfen. Um einen Charakter auszublenden, wenn er der Kamera zu nahe kommt, sollten Sie Pixel-Dither oder besser Objekt-Dither verwenden (das noch schneller ist als Pixel-Dither).

Material-Einstellungen

Render-Reihenfolge

Die Render-Reihenfolge von Objekten kann geändert werden, obwohl dies vor allem bei transparenten Objekten nützlich ist (oder bei undurchsichtigen Objekten, die eine Tiefenzeichnung, aber keine Farbzeichnung durchführen, wie z. B. Risse auf dem Boden).

Nächster Durchlauf

Legt das Material fest, das für den nächsten Durchlauf verwendet werden soll. Dadurch wird das Objekt erneut mit einem anderen Material gerendert.