Godot supporta due motori di rendering: GLES2 e GLES3. Dovresti scegliere tra GLES2 e GLES3 all'inizio del progetto ed evitare di cambiare, se possibile. I progetti possono passare da un motore di rendering all'altro, ma il passaggio richiede ulteriori operazioni di migrazione.
Su Android, questi renderer utilizzano rispettivamente le API OpenGL ES 2.0 e OpenGL ES 3.0. Il renderer GLES3 offre capacità e caratteristiche più sofisticate, mentre il renderer GLES2 è compatibile con un numero maggiore di dispositivi Android. I renderingr producono anche output visivo leggermente diverso per dati identici delle scene di input. Questa disparità è causata dal renderer GLES2 che utilizza uno spazio colore sRGB, mentre il renderer GLES3 utilizza uno spazio colore lineare.
Scelta di un renderer
GLES2
Il renderer GLES2 è più adatto per progetti 2D o 3D con requisiti grafici modesti ed è compatibile praticamente con tutti i dispositivi Android attivi. Se il tuo progetto è progettato per funzionare bene su dispositivi meno recenti e intendi supportarli, GLES2 potrebbe essere la scelta migliore.
Una limitazione importante del renderer GLES2 su Android è supportato dal fatto che è supportato un solo formato di texture compressa: ETC1. ETC1 non supporta un canale alfa. Altri motori potrebbero utilizzare due texture ETC1 come soluzione alternativa, con una texture contenente dati sui colori e una seconda texture contenente i dati del canale alfa. Godot non lo fa. I progetti che utilizzano il renderer GLES2 su Android devono usare texture non compresse quando viene incluso un canale alfa. Le texture non compresse utilizzano molta più memoria e non hanno le stesse prestazioni delle texture compresse. I dispositivi meno recenti con risorse limitate in particolare potrebbero riscontrare problemi quando si utilizzano texture non compresse di grandi dimensioni, tra cui l'esaurimento dei limiti di memoria.
Le funzionalità di rendering avanzate potrebbero non essere disponibili per il renderer GLES2. Le limitazioni del renderer GLES2 includono, a titolo esemplificativo:
- Scalabilità delle prestazioni scadente per luce in tempo reale attiva.
- Mancanza di supporto per funzionalità di rendering come l'intervallo di alta definizione, le proprietà di rifrazione, i riflessi dello spazio sullo schermo o la copertura ambientale dello spazio dello schermo.
- Limitazioni relative alla complessità delloshadowr.
- Mancanza di un supporto per l'illuminazione globale in tempo reale.
- Manca il supporto dell'accelerazione GPU per le particelle.
GLES3
Il renderer GLES3 è compatibile con circa il 90% dei dispositivi Android attivi che supportano OpenGL ES 3.0. Solo i dispositivi Android attivi meno recenti sono privi del supporto OpenGL ES 3.0.
Sebbene il renderer GLES3 sia compatibile con qualsiasi dispositivo OpenGL ES 3.0, tieni presente che i dispositivi meno recenti hanno meno probabilità di essere eseguiti a frequenze fotogrammi accettabili. Alcuni dispositivi meno recenti contengono bug di driver grafici nelle implementazioni OpenGL ES 3.0. Il renderer GLES3 su Android ha attenuazioni limitate per i bug dei driver. Questi problemi sono meno preoccupanti sui dispositivi più recenti.
Il renderer GLES3 supporta il formato di compressione delle texture ETC2 su Android. A differenza di ETC1, ETC2 include il supporto per un canale alfa.
Per ulteriori informazioni, consulta la documentazione di Godot: differenze tra GLES2 e GLES3