Up to date

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

Importieren von Bildern

Unterstützte Bildformate

Godot unterstützt die folgenden Bildformate:

  • BMP (.bmp) - Keine Unterstützung für Bilder mit 16 Bit pro Pixel. Es werden nur Bilder mit 1 Bit, 4 Bit, 8 Bit, 24 Bit und 32 Bit pro Pixel unterstützt.

  • DirectDraw Surface (.dds) - Wenn Mipmaps in der Textur vorhanden sind, werden sie direkt geladen. Dies kann verwendet werden, um Effekte mit benutzerdefinierten Mipmaps zu erzielen.

  • Khronos Texture (.ktx) - Die Dekodierung erfolgt mit libktx. Unterstützt nur 2D-Bilder. Cubemaps, Textur-Arrays und De-Padding werden nicht unterstützt.

  • OpenEXR (.exr) - Unterstützt HDR (sehr zu empfehlen für Panoramahimmel).

  • Radiance HDR (.hdr) - Unterstützt HDR (sehr zu empfehlen für Panoramahimmel).

  • JPEG (.jpg, .jpeg) - Unterstützt aufgrund der Einschränkungen des Formats keine Transparenz.

  • PNG (.png) - Die Genauigkeit ist beim Import auf 8 Bit pro Kanal begrenzt (keine HDR-Bilder).

  • Truevision Targa (.tga)

  • SVG (.svg) - SVGs are rasterized using ThorVG when importing them. Support is limited; complex vectors may not render correctly. Text must be converted to paths; otherwise, it won't appear in the rasterized image. You can check whether ThorVG can render a certain vector correctly using its web-based viewer. For complex vectors, rendering them to PNGs using Inkscape is often a better solution. This can be automated thanks to its command-line interface.

  • WebP (.webp) - WebP-Dateien unterstützen Transparenz und können verlustbehaftet oder verlustfrei komprimiert werden. Die Genauigkeit ist auf 8 Bit pro Kanal begrenzt.

Bemerkung

Wenn Sie den Godot-Editor aus dem Quellcode mit bestimmten deaktivierten Modulen kompiliert haben, sind einige Formate möglicherweise nicht verfügbar.

Texturen importieren

Die Default-Aktion in Godot ist der Import von Bildern als Texturen. Texturen werden im Videospeicher gespeichert. Auf ihre Pixeldaten kann nicht direkt von der CPU aus zugegriffen werden, ohne sie in einem Skript zurück in ein Image zu konvertieren. Das macht das Zeichnen von ihnen so effizient.

Es gibt mehr als ein Dutzend Importoptionen, die nach der Auswahl eines Bildes im Dateisystem-Dock eingestellt werden können:

Importoptionen im Import-Dock nach Auswahl eines Bildes im Dateisystem-Dock

Importoptionen im Import-Dock nach Auswahl eines Bildes im Dateisystem-Dock. Einige dieser Optionen sind nur bei bestimmten Komprimierungsmodi sichtbar.

Ändern des Importtyps

Es ist möglich, andere Typen von importierten Ressourcen im Import-Dock auszuwählen:

  • BitMap: 1-Bit-Monochrom-Textur (vorgesehen für die Verwendung als Klick-Maske in TextureButton und TouchScreenButton). Dieser Ressourcentyp kann nicht direkt auf 2D- oder 3D-Nodes angezeigt werden, aber die Pixelwerte können von einem Skript mit get_bit abgefragt werden.

  • Cubemap: Importieren Sie die Textur als 6-seitige Cubemap, mit Interpolation zwischen den Seiten der Cubemap (nahtlose Cubemaps), die in benutzerdefinierten Shadern gesampelt werden können.

  • CubemapArray: Importieren der Textur als Sammlung von 6-seitigen Cubemaps, die in benutzerdefinierten Shadern abgetastet werden können. Dieser Ressourcentyp kann nur angezeigt werden, wenn die Rendering-Methoden Forward+ oder Forward Mobile verwendet werden, nicht jedoch Kompatibilität.

  • Schriftdaten (Monospace Image Font): Importieren des Bildes als Bitmap-Schriftart, bei der alle Zeichen die gleiche Breite haben. Siehe Verwenden von Schriftarten.

  • Bild: Importieren des Bildes so wie es ist. Dieser Ressourcentyp kann nicht direkt auf 2D- oder 3D-Nodes angezeigt werden, aber die Pixelwerte können von einem Skript mit get_pixel abgefragt werden.

  • Textur2D: Importieren Sie das Bild als 2-dimensionale Textur, die für die Darstellung auf 2D- und 3D-Oberflächen geeignet ist. Dies ist der Default-Importmodus.

  • Texture2DArray: Importieren Sie das Bild als eine Sammlung von 2-dimensionalen Texturen. Texture2DArray ist ähnlich wie eine 3-dimensionale Textur, aber ohne Interpolation zwischen den Ebenen. Built-in-2D- und 3D-Shader können keine Textur-Arrays anzeigen, daher müssen Sie einen benutzerdefinierten Shader in 2D oder 3D erstellen, um eine Textur aus einem Textur-Array anzuzeigen.

  • Texture3D: Importieren Sie das Bild als 3-dimensionale Textur. Dies ist nicht eine 2D-Textur, die auf eine 3D-Oberfläche angewendet wird. Texture3D ist ähnlich wie ein Textur-Array, aber mit Interpolation zwischen den Ebenen. Texture3D wird typischerweise für FogMaterial-Dichtekarten in volumetrischem Nebel, Environment-3D-LUT-Farbkorrektur und benutzerdefinierten Shadern verwendet.

  • TextureAtlas: Importiert das Bild als einen Atlas verschiedener Texturen. Kann verwendet werden, um die Speichernutzung für animierte 2D-Sprites zu reduzieren. Wird nur in 2D unterstützt, da die Unterstützung in den Built-in-3D-Shadern fehlt.

3D erkennen

Die Default-Importoptionen (keine Mipmaps und Lossless-Kompression) sind für 2D geeignet, aber nicht ideal für die meisten 3D-Projekte. 3D erkennen macht Godot darauf aufmerksam, wenn eine Textur in einer 3D-Szene verwendet wird (z. B. eine Textur in einer BaseMaterial3D). Wenn dies der Fall ist, werden mehrere Importoptionen geändert, so dass die Textur-Flags 3D-freundlicher sind. Mipmaps werden aktiviert und der Kompressionsmodus wird auf VRAM Compressed geändert, es sei denn 3D Erkennen > Komprimieren nach wird geändert. Die Textur wird außerdem automatisch neu importiert.

Wenn eine Textur erkannt wird, die in 3D verwendet werden soll, wird eine Meldung auf dem Ausgabe-Panel ausgegeben.

Wenn Sie auf Qualitätsprobleme stoßen, wenn eine Textur zur Verwendung in 3D erkannt wird (z.B. bei Pixel-Art-Texturen), ändern Sie die Option 3D Erkennen > Komprimieren nach, bevor Sie die Textur in 3D verwenden, oder ändern Sie Komprimieren > Modus auf verlustfrei, nachdem Sie die Textur in 3D verwendet haben. Dies ist der Deaktivierung von 3D erkennen vorzuziehen, da die Mipmap-Erzeugung aktiviert bleibt, um zu verhindern, dass Texturen aus der Entfernung körnig aussehen.

Import-Optionen

Siehe auch

In Godot 4.0 wird die Änderung des Texturfilters und des Wiederholungsmodus nicht mehr in den Importoptionen vorgenommen.

Stattdessen werden die Texturfilter- und Wiederholungsmodi in den CanvasItem-Propertys in 2D (mit einer Projekteinstellung als Default) und in einer pro-Material-Konfiguration in 3D geändert. In benutzerdefinierten Shadern wird der Filter- und Wiederholungsmodus auf dem sampler2D-Uniform mit Hilfe von Hints geändert, die in der Shader-Sprache-Dokumentation beschrieben sind.

Komprimieren > Modus

Bilder sind einer der größten Assets in einem Spiel. Um sie effizient verarbeiten zu können, müssen sie komprimiert werden. Godot bietet je nach Anwendungsfall mehrere Komprimierungsverfahren an.

  • Verlustfrei: Dies ist der Default und gebräuchlichste Komprimierungsmodus für 2D-Assets. Er zeigt Assets ohne jegliche Art von Artefakten an, und die Festplattenkomprimierung ist akzeptabel. Sie benötigt jedoch wesentlich mehr Videospeicher als die VRAM-Komprimierung. Dies ist auch die empfohlene Einstellung für Pixel-Art.

  • Verlustbehaftet: Dies ist eine gute Wahl für große 2D-Assets. Sie hat einige Artefakte, aber weniger als VRAM und die Dateigröße ist im Vergleich zu "Verlustfrei" oder "VRAM-Unkomprimiert" um ein Vielfaches geringer. Die Nutzung des Videospeichers wird durch diesen Modus nicht verringert; es ist derselbe wie bei "Verlustfrei" oder "VRAM-Unkomprimiert".

  • VRAM-Komprimiert: Dies ist der Default und der gebräuchlichste Komprimierungsmodus für 3D-Assets. Die Größe auf der Festplatte wird reduziert, und auch die Nutzung des Videospeichers wird erheblich verringert (normalerweise um einen Faktor zwischen 4 und 6). Dieser Modus sollte für 2D vermieden werden, da er auffällige Artefakte aufweist, insbesondere bei Texturen mit geringerer Auflösung.

  • VRAM-Unkomprimiert: Nur nützlich für Formate, die nicht komprimiert werden können, wie z. B. Raw-Float-Bilder.

  • Basis Universal: Dieser alternative VRAM-Komprimierungsmodus kodiert die Textur in ein Format, das zur Ladezeit in die meisten GPU-komprimierten Formate transkodiert werden kann. Dies liefert sehr kleine Dateien mit VRAM-Komprimierung, zum Preis einer geringeren Qualität im Vergleich zu "VRAM-Komprimiert", sowie langsamen Kompressionszeiten. Der VRAM-Verbrauch ist in der Regel derselbe wie bei "VRAM-Komprimiert". Basis Universal unterstützt keine Float-Bildformate (die Engine greift stattdessen intern auf "VRAM-Komprimiert" zurück).

Bemerkung

Selbst in 3D sollte die VRAM-Komprimierung von "Pixel Art"-Texturen deaktiviert werden, da sie sich negativ auf ihr Aussehen auswirkt, ohne die Performance aufgrund ihrer geringen Auflösung wesentlich zu verbessern.

In dieser Tabelle wird jede der 5 Optionen zusammen mit ihren Vor- und Nachteilen beschrieben (gut = beste, schlecht = schlechteste):

Kompressionsmodus

Verlustfrei

Verlustbehaftet

VRAM-Komprimiert

VRAM-Unkomprimiert

Basis Universal

Beschreibung

Gespeichert als verlustfreies WebP / PNG

Gespeichert als verlustbehaftetes WebP

Je nach Plattform als S3TC, BPTC oder ETC2 gespeichert

Gespeichert als Raw-Pixel

Transkodiert ins "VRAM-Komprimiert"-Format

Größe auf Disk

regulär Klein

gut Sehr Klein

regulär Klein

schlecht Groß

gut Sehr Klein

Speichernutzung

schlecht Groß

schlecht Groß

gut Klein

schlecht Groß

gut Klein

Performance

regulär Normal

regulär Normal

gut Schnell

regulär Normal

gut Schnell

Qualitätseinbußen

gut Nichts

regulär Gering

schlecht Mittelmäßig

gut Nichts

schlecht Mittelmäßig

Ladezeiten

schlecht Langsam

schlecht Langsam

gut Schnell

regulär Normal

regulär Normal

Geschätzter Speicherverbrauch für eine einzelne RGBA8-Textur mit aktivierten Mipmaps:

Texturgröße

Verlustfrei

Verlustbehaftet

VRAM-Komprimiert

VRAM-Unkomprimiert

Basis Universal

128×128

gut 85 KiB

gut 85 KiB

gut 21 KiB

gut 85 KiB

gut 21 KiB

256×256

gut 341 KiB

gut 341 KiB

gut 85 KiB

gut 341 KiB

gut 85 KiB

512×512

gut 1.33 MiB

gut 1.33 MiB

gut 341 KiB

gut 1.33 MiB

gut 341 KiB

1024×1024

regulär 5.33 MiB

regulär 5.33 MiB

gut 1.33 MiB

regulär 5.33 MiB

gut 1.33 MiB

2048×2048

schlecht 21.33 MiB

schlecht 21.33 MiB

regulär 5.33 MiB

schlecht 21.33 MiB

regulär 5.33 MiB

4096×4096

schlecht 85.33 MiB

schlecht 85.33 MiB

schlecht 21.33 MiB

schlecht 85.33 MiB

schlecht 21.33 MiB

Bemerkung

In der obigen Tabelle wird die Speichernutzung für Bilder ohne Alphakanal (RGB8) um 25 % reduziert. Die Speichernutzung wird bei Bildern, bei denen Mipmaps deaktiviert sind, um weitere 25 % verringert.

Beachten Sie, dass bei größeren Auflösungen die Auswirkungen der VRAM-Komprimierung viel größer sind. Mit einem Komprimierungsverhältnis von 4:1 (6:1 für undurchsichtige Texturen mit S3TC) ermöglicht die VRAM-Komprimierung effektiv, dass eine Textur auf jeder Achse doppelt so groß ist, während die gleiche Menge an Speicher auf der GPU verwendet wird.

Die VRAM-Komprimierung verringert auch die für die Abtastung der Textur erforderliche Speicherbandbreite, was das Rendering in Szenarien mit eingeschränkter Speicherbandbreite beschleunigen kann (was bei integrierten Grafikenchips und mobilen Geräten häufig der Fall ist). Die Kombination dieser Faktoren macht die VRAM-Komprimierung zu einem Muss für 3D-Spiele mit hochauflösenden Texturen.

Sie können sehen, wie viel Speicherplatz eine Textur benötigt, indem Sie auf sie im Dateisystem-Dock doppelklicken und dann den Inspektor betrachten:

Vorschau einer Textur im Inspektor

Vorschau einer Textur im Inspektor. Quelle: Red Brick 03 - Poly Haven

Komprimieren > Hohe Qualität

Bemerkung

Hochwertige VRAM-Texturkompression wird nur in den Rendering-Methoden Forward+ und Forward Mobile unterstützt.

Bei Verwendung der Rendering-Methode "Kompatibilität" wird diese Option immer als deaktiviert betrachtet.

Wenn diese Option aktiviert ist, wird auf Desktop-Plattformen die BPTC-Kompression und auf mobilen Plattformen die ASTC-Kompression verwendet. Wenn BPTC verwendet wird, wird BC7 für SDR-Texturen und BC6H für HDR-Texturen verwendet.

Wenn deaktiviert (Default), wird die schnellere, aber qualitativ schlechtere S3TC-Kompression auf Desktop-Plattformen und ETC2 auf Mobile-/Web-Plattformen verwendet. Bei Verwendung von S3TC wird DXT1 (BC1) für undurchsichtige Texturen und DXT5 (BC3) für transparente oder Normal Map-Texturen (RGTC) verwendet.

BPTC und ASTC unterstützen VRAM-Kompression für HDR-Texturen, S3TC und ETC2 jedoch nicht (siehe HDR-Kompression unten).

Komprimieren > HDR-Kompression

Bemerkung

Diese Option hat nur Auswirkungen auf Texturen, die als HDR-Formate in Godot importiert werden (.hdr und .exr Dateien).

Bei der Einstellung Deaktiviert wird niemals VRAM-Kompression für HDR-Texturen verwendet, unabhängig davon, ob sie undurchsichtig oder transparent sind. Stattdessen wird die Textur in RGBE9995 (9 Bits pro Kanal + 5-Bit-Exponent = 32 Bits pro Pixel) konvertiert, um die Speichernutzung im Vergleich zu einem Half-Float- oder Single-Precision-Float-Bildformat zu reduzieren.

Bei der Einstellung Nur Undurchsichtig (Default) wird die VRAM-Kompression nur für undurchsichtige HDR-Texturen verwendet. Dies ist auf eine Einschränkung der HDR-Formate zurückzuführen, da es kein VRAM-komprimiertes HDR-Format gibt, das gleichzeitig Transparenz unterstützt.

Wenn diese Option auf Immer gesetzt ist, wird die VRAM-Komprimierung auch für HDR-Texturen mit Alphakanal erzwungen. Um dies zu erreichen, wird der Alphakanal beim Import verworfen.

Komprimieren > Normal Map

Wenn eine Textur als Normal Map verwendet wird, werden nur der rote und der grüne Kanal benötigt. Da übliche Textur-Kompressionsalgorithmen Artefakte erzeugen, die in Normal Maps nicht so schön aussehen, ist das Kompressionsformat RGTC die beste Lösung für diese Daten. Wenn Sie diese Option auf Aktiviert setzen, wird Godot das Bild als RGTC komprimiert importieren. Standardmäßig ist die Option auf Erkennen gesetzt. Das heißt, wenn die Textur jemals als Normal Map erkannt wird, wird sie auf Aktivieren geändert und automatisch neu importiert.

Beachten Sie, dass die RGTC-Kompression das resultierende Normal-Map-Bild beeinflusst. Sie müssen benutzerdefinierte Shader, die den blauen Kanal der Normal Map verwenden, anpassen, um dies zu berücksichtigen. Eingebaute Material-Shader ignorieren bereits den blauen Kanal in einer Normal Map (unabhängig vom tatsächlichen Inhalt der Normal Map).

Im folgenden Beispiel ist die Normal Map mit RGTC-Komprimierung in der Lage, ihre Details viel besser zu erhalten, während sie die gleiche Menge an Speicher wie eine Standard-RGBA-VRAM-komprimierte Textur benötigt:

Normal Map mit Standard-VRAM-Kompression (links) und mit RGTC-VRAM-Kompression (rechts)

Normal Map mit Standard-VRAM-Kompression (links) und mit RGTC-VRAM-Kompression (rechts)

Bemerkung

Godot verlangt, dass die Normal Map die Koordinaten X+, Y+ und Z+ verwendet, was als Normal Map im OpenGL-Stil bekannt ist. Wenn Sie ein Material importiert haben, das für eine andere Engine bestimmt ist, könnte es im DirectX-Stil vorliegen. In diesem Fall muss die Normal Map durch Aktivierung der Importoption Normal Map-Y Invertieren konvertiert werden.

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

Komprimieren > Channel-Pack

Bei der Einstellung sRGB Friendly (Default) wird verhindert, dass das RG-Farbformat verwendet wird, da es keine sRGB-Farben unterstützt.

Wenn diese Option auf Optimiert gesetzt ist, kann das RG-Farbformat verwendet werden, wenn die Textur den Blaukanal nicht verwendet.

Eine dritte Option Normal Map (RG-Kanäle) ist nur in Multi-Layer-Texturen (Cubemap, CubemapArray, Texture2DArray und Texture3D) verfügbar. Dies erzwingt, dass alle Ebenen der Textur mit dem RG-Farbformat importiert werden, um den Speicherverbrauch zu reduzieren, wobei nur die roten und grünen Kanäle erhalten bleiben. Dies hat nur Auswirkungen auf Texturen mit den Komprimierungsmodi VRAM-Komprimiert oder Basis Universal.

Mipmaps > Erzeugen

Wenn diese Option aktiviert ist, werden beim Import kleinere Versionen der Textur erzeugt. Eine 64×64-Textur erzeugt zum Beispiel 6 Mipmaps (32×32, 16×16, 8×8, 4×4, 2×2, 1×1). Dies hat mehrere Vorteile:

  • Texturen werden in der Ferne (in 3D) nicht körnig, oder wenn sie aufgrund des Kamerazooms oder der CanvasItem-Skalierung (in 2D) verkleinert werden.

  • Die Performance verbessert sich, wenn die Textur in der Ferne angezeigt wird, da die Abtastung kleinerer Versionen der Originaltextur schneller ist und weniger Speicherbandbreite benötigt.

Der Nachteil von Mipmaps ist, dass sie den Speicherverbrauch um etwa 33 % erhöhen.

Es wird empfohlen, Mipmaps in 3D zu aktivieren. In 2D sollte dies jedoch nur aktiviert werden, wenn Ihr Projekt sichtbar von der Aktivierung von Mipmaps profitiert. Wenn die Kamera nie stark herausgezoomt wird, bringt die Aktivierung von Mipmaps keinen Vorteil, sondern erhöht die Speichernutzung.

Mipmaps > Begrenzung

Warnung

Mipmaps > Begrenzung ist derzeit nicht implementiert und hat bei Änderung keine Auswirkungen.

Wenn dieser Wert größer als -1 ist, begrenzt er die maximale Anzahl von Mipmaps, die erzeugt werden können. Dieser Wert kann verringert werden, wenn Sie nicht wollen, dass die Texturen bei extremen Entfernungen zu niedrig aufgelöst werden, was allerdings mit einer gewissen Körnigkeit einhergeht.

Rauheit > Modus

Der Farbkanal, der als Rauheitskarte in dieser Textur berücksichtigt werden soll. Nur wirksam, wenn Rauheit > Normal Map-Quelle nicht leer ist.

Roughness > Src Normal

Der Pfad zu der Textur, die beim Import als Normal Map für die Rauheitsfilterung berücksichtigt werden soll. Diese Angabe kann helfen, Specular Aliasing in 3D leicht zu verringern.

Die Rauheitsfilterung beim Import wird nur beim 3D-Rendering verwendet, nicht beim 2D-Rendering.

Prozessierung > Alpharand beheben

Dadurch werden Pixel der gleichen Umgebungsfarbe in den Übergang von transparenten zu undurchsichtigen Bereichen gesetzt. Bei Texturen, die mit bilinearer Filterung angezeigt werden, hilft dies, den Umriss-Effekt beim Exportieren von Bildern aus einem Bildbearbeitungsprogramm abzuschwächen.

../../_images/fixedborder.png

Es wird empfohlen, diese Option aktiviert zu lassen (so wie sie standardmäßig eingestellt ist), es sei denn, dies verursacht Probleme für ein bestimmtes Bild.

Prozessierung > Alpha vormultiplizieren

Eine Alternative zum Korrigieren verdunkelter Ränder mit Alpharand beheben ist die Verwendung von vormultipliziertem Alpha. Wenn Sie diese Option aktivieren, wird die Textur in dieses Format konvertiert. Eine vormultiplizierte Alpha-Textur erfordert bestimmte Materialien, um korrekt angezeigt zu werden:

  • In 2D muss ein CanvasItemMaterial erstellt und konfiguriert werden, um den Blending-Modus Alpha vormultiplizieren auf CanvasItems zu verwenden, die diese Textur verwenden.

  • In 3D gibt es noch keine Unterstützung für den vormultiplizierten Alphamodus, daher ist diese Option nur für 2D geeignet.

Prozessierung > Normal Map-Y Invertieren

Godot verlangt, dass die Normal Map die Koordinaten X+, Y+ und Z+ verwendet, was als Normal Map im OpenGL-Stil bekannt ist. Wenn Sie ein Material importiert haben, das für eine andere Engine bestimmt ist, könnte es im DirectX-Stil vorliegen. In diesem Fall muss die Normal Map durch Aktivierung der Importoption Normal Map-Y Invertieren konvertiert werden.

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

Prozessierung > HDR als sRGB

Einige HDR-Bilder, die Sie im Internet finden, sind möglicherweise beschädigt und enthalten sRGB-Farbdaten (anstelle von linearen Farbdaten). Es wird empfohlen, diese Dateien nicht zu verwenden. Wenn Sie sie unbedingt verwenden müssen, können Sie diese Option aktivieren, damit sie korrekt aussehen.

Warnung

Die Aktivierung von HDR als sRGB kann bei gut formatierten HDR-Bildern dazu führen, dass das resultierende Bild zu dunkel aussieht. Lassen Sie diese Option daher im Zweifelsfall deaktiviert.

Prozessierung > HDR-Clamp-Belichtung

Einige HDR-Panoramabilder, die Sie im Internet finden, können extrem helle Pixel enthalten, da sie von realen Quellen ohne Clipping aufgenommen wurden.

Diese HDR-Panoramabilder sind zwar realitätsgetreu, doch kann dies dazu führen, dass die von Godot generierte Radiance Map ein Funkeln enthält, wenn sie als Hintergrundhimmel verwendet wird. Dies kann in Materialreflexionen gesehen werden (in extremen Fällen sogar auf rauen Materialien). Die Aktivierung von HDR-Clamp-Belichtung kann dieses Problem mit einer intelligenten Clamp-Formel lösen, die kein sichtbares Clipping einführt - das Glowing funktioniert weiter, wenn man den Hintergrundhimmel betrachtet.

Prozessierung > Größenbeschränkung

Wenn dieser Wert größer als 0 ist, wird die Größe der Textur beim Import auf einen Wert kleiner oder gleich dem hier angegebenen Wert begrenzt. Bei nicht-quadratischen Texturen betrifft die Größenbegrenzung die längere Dimension, wobei die kürzere Dimension skaliert wird, um das Seitenverhältnis zu bewahren. Die Größenänderung wird durch kubische Interpolation durchgeführt.

Dies kann verwendet werden, um die Speichernutzung zu reduzieren, ohne die Quellbilder zu beeinträchtigen, oder um Probleme mit Texturen zu vermeiden, die auf Mobil-/Webplattformen nicht angezeigt werden (da diese in der Regel keine Texturen größer als 4096×4096 anzeigen können).

3D Erkennen > Komprimieren nach

Dies ändert die Option Komprimieren > Modus, die verwendet wird, wenn eine Textur als in 3D verwendet erkannt wird.

Die Änderung dieser Importoption wirkt sich nur aus, wenn eine Textur als in 3D verwendet erkannt wird. Wenn Sie diese Option auf Deaktiviert ändern und dann erneut importieren, wird der vorhandene Komprimierungsmodus einer Textur nicht geändert (wenn erkannt wird, dass sie in 3D verwendet wird), aber die Auswahl von VRAM-Komprimiert oder Basis Universal schon.

SVG > Scale

This is only available for SVG images.

The scale the SVG should be rendered at, with 1.0 being the original design size. Higher values result in a larger image. Note that unlike font oversampling, this affects the physical size the SVG is rendered at in 2D. See also Editor > Scale With Editor Scale below.

Editor > Scale With Editor Scale

This is only available for SVG images.

If true, scales the imported image to match the editor's display scale factor. This should be enabled for editor plugin icons and custom class icons, but should be left disabled otherwise.

Editor > Convert Colors With Editor Theme

This is only available for SVG images.

If checked, converts the imported image's colors to match the editor's icon and font color palette. This assumes the image uses the exact same colors as Godot's own color palette for editor icons, with the source file designed for a dark editor theme. This should be enabled for editor plugin icons and custom class icons, but should be left disabled otherwise.

Importing SVG images with text

As the SVG library used in Godot doesn't support rasterizing text found in SVG images, text must be converted to a path first. Otherwise, text won't appear in the rasterized image.

There are two ways to achieve this in a non-destructive manner, so you can keep editing the original text afterwards:

  • Select your text object in Inkscape, then duplicate it in place by pressing Ctrl + D and use Path > Object to Path. Hide the original text object afterwards using the Layers and Objects dock.

  • Use the Inkscape command line to export a SVG from another SVG file with text converted to paths:

inkscape --export-text-to-path --export-filename svg_with_text_converted_to_path.svg svg_with_text.svg

Bewährte Praktiken

Unterstützung von hochauflösenden Texturen in 2D ohne Artefakte

Um Mehrfache Auflösungen mit gestochen scharfen Bildern bei hohen Auflösungen zu unterstützen, müssen Sie hochauflösende Quellbilder verwenden (geeignet für die höchste Auflösung, die Sie ohne Unschärfe unterstützen möchten, was bei modernen Desktop-Spielen in der Regel 4K ist).

Es gibt 2 Möglichkeiten, wie Sie vorgehen können:

  • Verwenden Sie in den Projekteinstellungen eine hohe Basisauflösung (z. B. 4K), und verwenden Sie die Texturen dann in Originalgröße. Dies ist der einfachere Ansatz.

  • Verwenden Sie eine niedrige Basisauflösung in den Projekteinstellungen (z.B. 1080p) und skalieren Sie die Texturen dann herunter, wenn Sie sie verwenden. Dies ist oft schwieriger und kann verschiedene Berechnungen im Skript mühsam machen, daher wird stattdessen der oben beschriebene Ansatz empfohlen.

Nachdem Sie dies getan haben, werden Sie möglicherweise feststellen, dass Texturen bei niedrigeren Auflösungen des Viewports körnig werden. Um dies zu beheben, aktivieren Sie Mipmaps für in 2D verwendete Texturen im Import-Dock. Dies erhöht die Speichernutzung.

Die Aktivierung von Mipmaps kann auch dazu führen, dass Texturen unschärfer erscheinen, aber Sie können Texturen auch schärfer machen (zum Preis einer gewissen Körnigkeit), indem Sie Rendern > Texturen > Standardfilter > Textur-Mipmap-Bias auf einen negativen Wert setzen.

Geeignete Texturgrößen in 3D verwenden

Es gibt zwar keine Empfehlung, die für alle Anwendungsfälle optimal ist, aber hier sind einige allgemeine Empfehlungen für die Wahl der Texturgrößen in 3D:

  • Die Größe einer Textur sollte so angepasst werden, dass sie im Vergleich zu den umgebenden Objekten eine gleichmäßige Texeldichte aufweist. Auch wenn dies nicht perfekt gewährleistet werden kann, wenn man sich an Texturgrößen der Zweierpotenz hält, ist es in der Regel möglich, die Texturdetails in einer 3D-Szene einigermaßen konsistent zu halten.

  • Je kleiner das Objekt auf dem Bildschirm erscheint, desto kleiner sollte seine Textur sein. Ein Baum, der nur im Hintergrund erscheint, braucht zum Beispiel keine so hohe Texturauflösung wie andere Objekte, an die der Spieler herankommt.

  • Die Verwendung von Texturgrößen in Zweierpotenzen wird empfohlen, ist aber nicht erforderlich. Die Texturen müssen nicht quadratisch sein - Größen wie 1024×512 sind akzeptabel.

  • Die Verwendung großer Texturgrößen lohnt sich immer weniger, trotz des erhöhten Speicherbedarfs und der längeren Ladezeiten. Die meisten modernen 3D-Spiele, die keinen Pixel-Art-Stil verwenden, halten sich im Durchschnitt an 2048×2048 Texturen, mit 1024×1024 und 512×512 für Texturen, die kleinere Flächen überspannen.

  • Bei der Arbeit mit Physik-basierten Materialien in 3D können Sie die Speichernutzung und die Dateigröße reduzieren, ohne die Qualität zu sehr zu beeinträchtigen, indem Sie eine niedrigere Auflösung für bestimmte Textur-Maps verwenden. Dies funktioniert besonders gut bei Texturen, die nur Details mit niedrigen Frequenzen enthalten (z.B. eine Normal Map für eine Schneetextur).

Wenn Sie die beeinflussen können, wie die 3D-Modelle erstellt werden, sollten Sie diese Tipps ebenfalls ausprobieren:

  • Wenn Sie mit 3D-Modellen arbeiten, die überwiegend symmetrisch sind, können Sie gespiegelte UVs verwenden, um die effektive Texeldichte zu verdoppeln. Bei menschlichen Gesichtern kann dies jedoch unnatürlich aussehen.

  • Wenn Sie mit 3D-Modellen arbeiten, die einen Low-Poly-Stil und einfache Farben verwenden, können Sie sich auf Vertex-Farben anstelle von Texturen verlassen, um Farben auf den Oberflächen des Modells darzustellen.

Siehe auch

Bilder können zur Laufzeit mit Laden und Speichern von Laufzeitdateien geladen und gespeichert werden, auch aus einem exportierten Projekt.