Godot admite dos motores de renderización: GLES2 y GLES3. Cuando comiences tu proyecto, debes elegir entre GLES2 y GLES3 y, si es posible, evitar realizar el cambio. Los proyectos pueden alternar entre estos dos motores de renderización, pero el cambio requiere trabajo de migración adicional.
En Android, estos procesadores usan las API de OpenGL ES 2.0 y OpenGL ES 3.0, respectivamente. El procesador GLES3 tiene funciones y características más sofisticadas, mientras que el procesador GLES2 es compatible con más dispositivos Android. Los procesadores también producen resultados visuales un poco diferentes para datos de escena de entrada idénticos. Esta diferencia se debe a que el procesador GLES2 usa un espacio de color sRGB, mientras que el GLES3 usa un espacio de color lineal.
Cómo elegir un procesador
GLES2
El procesador GLES2 es el más adecuado para proyectos en 2D o 3D con requisitos gráficos moderados y es compatible con casi todos los dispositivos Android activos. Si tu proyecto está diseñado para ejecutarse correctamente en dispositivos más antiguos y quieres ofrecer compatibilidad con ellos, es posible que GLES2 sea la mejor opción.
Una limitación importante del procesador GLES2 en Android es que solo se admite un formato de textura comprimida: ETC1. ETC1 no admite un canal alfa. Otros motores pueden usar texturas ETC1 dobles como solución alternativa, con una textura que contiene datos de color y otra que contiene datos del canal alfa. Godot no lo hace. Los proyectos que usan el procesador GLES2 en Android deben usar texturas sin comprimir cuando incluyen un canal alfa. Las texturas sin comprimir usan mucha más memoria y no funcionan tan bien como las texturas comprimidas. Los dispositivos más antiguos con recursos limitados en particular pueden tener problemas cuando se usan texturas grandes sin comprimir, como alcanzar límites de memoria.
Es posible que las funciones de renderización avanzadas no estén disponibles para el procesador GLES2. Entre las limitaciones del procesador GLES2, se incluyen las siguientes:
- Bajo rendimiento para el escalamiento por luz activa en tiempo real
- Falta de compatibilidad con las funciones de renderización, como el rango de alta definición, las propiedades de refracción, los reflejos del espacio en pantalla o la oclusión del ambiente del espacio en pantalla
- Restricciones relativas a la complejidad del sombreador
- Falta de compatibilidad con la iluminación global en tiempo real
- Falta de compatibilidad con la aceleración de la GPU para partículas
GLES3
El procesador GLES3 es compatible con cerca del 90% de los dispositivos Android activos que admiten OpenGL ES 3.0. Solo los dispositivos Android más antiguos no tienen compatibilidad con OpenGL ES 3.0.
Si bien el procesador GLES3 es compatible con cualquier dispositivo OpenGL ES 3.0, ten en cuenta que es menos probable que los dispositivos más antiguos se ejecuten a velocidades de fotogramas aceptables. Algunos dispositivos más antiguos también contienen errores de controladores gráficos en sus implementaciones de OpenGL ES 3.0. El procesador GLES3 en Android tiene mitigaciones limitadas para los errores de controladores. Estos problemas no son tan importantes en los dispositivos más nuevos.
El procesador GLES3 admite el formato de compresión de texturas ETC2 en Android. A diferencia de ETC1, ETC2 incluye la compatibilidad con un canal alfa.
Para obtener más información, consulta la documentación de Godot: diferencias entre GLES2 y GLES3.