Godot-Renderer-Optionen

Godot unterstützt zwei Rendering-Engines: GLES2 und GLES3. Sie sollten sich zu Beginn Ihres Projekts zwischen GLES2 und GLES3 wählen und nach Möglichkeit einen Wechsel vermeiden. Projekte können zwischen diesen beiden Rendering-Engines hin- und herwechseln, dieser erfordert jedoch zusätzliche Migration.

Unter Android verwenden diese Renderer die OpenGL ES 2.0 und OpenGL ES 3.0 APIs. Der GLES3-Renderer verfügt über komplexere Funktionen, während der GLES2-Renderer mit mehr Android-Geräten kompatibel ist. Die Renderer produzieren außerdem eine leicht unterschiedliche visuelle Ausgabe für identische Eingabeszenendaten. Diese Abweichung wird dadurch verursacht, dass der GLES2-Renderer einen sRGB-Farbraum und der GLES3-Renderer einen linearen Farbraum verwendet.

Renderer auswählen

GLES2

Der GLES2-Renderer eignet sich am besten für 2D- oder 3D-Projekte mit moderaten Grafikanforderungen und ist mit praktisch allen aktiven Android-Geräten kompatibel. Wenn Ihr Projekt für die Ausführung auf älteren Geräten ausgelegt ist und Sie diese unterstützen möchten, ist GLES2 möglicherweise die beste Wahl.

Eine wichtige Einschränkung des GLES2-Renderers unter Android besteht darin, dass nur ein komprimiertes Texturformat unterstützt wird: ETC1. ETC1 unterstützt keinen Alphakanal. Andere Suchmaschinen können als Behelfslösung doppelte ETC1-Texturen verwenden, wobei eine Textur die Farbdaten und eine zweite Textur die Daten des Alphakanals enthält. Godot macht das nicht. Projekte, die den GLES2-Renderer unter Android verwenden, dürfen nicht komprimierte Texturen verwenden, wenn ein Alphakanal einbezogen wird. Nicht komprimierte Texturen benötigen deutlich mehr Arbeitsspeicher und funktionieren nicht so gut wie komprimierte Texturen. Insbesondere ältere Geräte mit begrenzten Ressourcen können bei der Verwendung großer nicht komprimierter Texturen, einschließlich der Überschreitung des Arbeitsspeicherlimits, Probleme haben.

Erweiterte Renderingfunktionen sind für den GLES2-Renderer möglicherweise nicht verfügbar. Zu den Einschränkungen des GLES2-Renderers gehören unter anderem:

  • Schlechte Leistungsskalierung pro aktivem Echtzeitlicht.
  • Fehlende Unterstützung für Rendering-Features wie HD-Bereich, Brechungseigenschaften, Reflexionen von Bildschirmräumen oder Umgebungsverdeckungen auf Bildschirmen.
  • Einschränkungen der Shader-Komplexität.
  • Fehlende Unterstützung für globale Beleuchtung in Echtzeit.
  • Fehlende Unterstützung für GPU-Beschleunigung für Partikel.

GLES3

Der GLES3-Renderer ist mit ungefähr 90% der aktiven Android-Geräte kompatibel, die OpenGL ES 3.0 unterstützen. Nur die ältesten aktiven Android-Geräte unterstützen OpenGL ES 3.0 nicht.

Obwohl der GLES3-Renderer mit allen OpenGL ES 3.0-Geräten kompatibel ist, sollten Sie beachten, dass ältere Geräte mit geringerer Wahrscheinlichkeit mit akzeptablen Framerates ausgeführt werden. Bei einigen älteren Geräten sind in ihren OpenGL ES 3.0-Implementierungen auch Fehler im Grafiktreiber enthalten. Der GLES3-Renderer für Android bietet nur begrenzte Risikominderungen für Treiberfehler. Bei neueren Geräten sind diese Probleme weniger wichtig.

Der GLES3-Renderer unterstützt das Texturkomprimierungsformat ETC2 unter Android. Im Gegensatz zu ETC1 unterstützt ETC2 auch einen Alphakanal.

Weitere Informationen finden Sie in der Godot-Dokumentation – Unterschiede zwischen GLES2 und GLES3.