Godot mendukung dua mesin rendering: GLES2 dan GLES3. Anda harus memilih antara GLES2 atau GLES3 saat memulai project, dan jangan beralih jika memungkinkan. Project dapat beralih antara dua mesin rendering ini, tetapi peralihan ini memerlukan upaya migrasi tambahan.
Di Android, perender ini menggunakan OpenGL ES 2.0 dan OpenGL ES 3.0 API. Perender GLES3 memiliki kemampuan dan fitur yang lebih canggih, sementaraperender GLES2 kompatibel dengan lebih banyak perangkat Android. Rendering juga menghasilkan output visual yang sedikit berbeda untuk data input yang identik. Perbedaan ini disebabkan oleh perender GLES2 yang menggunakan ruang warna sRGB sementara perender GLES3 menggunakan ruang warna linier.
Memilih perender
GLES2
Perender GLES2 paling sesuai untuk project 2D atau 3D dengan persyaratan grafis sederhana, dan kompatibel dengan hampir semua perangkat Android yang aktif. Jika project Anda dirancang agar dapat berjalan dengan baik di perangkat lama, dan Anda memang ingin mendukungnya, GLES2 mungkin menjadi pilihan terbaik.
Batasan penting dari perender GLES2 di Android ialah hanya ada satu format tekstur terkompresi yang didukung: ETC1. ETC1 tidak mendukung saluran alfa. Mesin lain dapat menggunakan tekstur ETC1 ganda sebagai solusinya, dengan satu tekstur yang berisi data warna dan tekstur kedua yang berisi data saluran alfa. Godot tidak melakukan ini. Project yang menggunakan perender GLES2 di Android harus menggunakan tekstur yang tidak dikompresi saat menyertakan saluran alfa. Tekstur yang tidak dikompresi akan menggunakan memori yang jauh lebih banyak dan performanya tidak sebaik tekstur yang dikompresi. Perangkat lama dengan resource terbatas khususnya mungkin mengalami masalah saat menggunakan tekstur besar yang tidak dikompresi, termasuk mencapai batas memori.
Fitur rendering lanjutan mungkin tidak tersedia untuk perender GLES2. Batasan perender GLES2 mencakup, tetapi tidak terbatas pada:
- Penskalaan performa buruk per cahaya real-time yang aktif.
- Kurangnya dukungan untuk fitur rendering seperti rentang definisi tinggi, properti refraksi, pantulan ruang layar, atau oklusi ruangan ruang layar.
- Pembatasan terkait kompleksitas shader.
- Kurangnya dukungan pencahayaan yang menyeluruh secara real-time.
- Kurangnya dukungan akselerasi GPU untuk partikel.
GLES3
Perender GLES3 kompatibel dengan sekitar 90% perangkat Android aktif yang memiliki dukungan OpenGL ES 3.0. Hanya perangkat Android aktif terlama yang tidak memiliki dukungan OpenGL ES 3.0.
Meskipun perender GLES3 kompatibel dengan perangkat OpenGL ES 3.0 apa pun, perlu diketahui bahwa perangkat lama cenderung tidak berjalan pada kecepatan frame yang dapat diterima. Beberapa perangkat lama juga berisi bug driver grafis dalam implementasi OpenGL ES 3.0. Perender GLES3 di Android memiliki mitigasi terbatas untuk bug driver. Masalah ini tidak terlalu mengkhawatirkan di perangkat baru.
Perender GLES3 mendukung format kompresi tekstur ETC2 di Android. Tidak seperti ETC1, ETC2 mencakup dukungan untuk saluran alfa.
Untuk mengetahui informasi selengkapnya, lihat Dokumentasi Godot - Perbedaan antara GLES2 dan GLES3