Godot में दो रेंडरिंग इंजन काम करते हैं: GLES2 और GLES3. प्रोजेक्ट शुरू करते समय, आपको GLES2 या GLES3 में से किसी एक को चुनना चाहिए. साथ ही, हो सके, तो इसे स्विच न करें. प्रोजेक्ट को इन दोनों रेंडरिंग इंजन के बीच स्विच किया जा सकता है. हालांकि, स्विच करने के लिए माइग्रेशन से जुड़ा अतिरिक्त काम करना पड़ता है.
Android पर, ये रेंडरर क्रमशः OpenGL ES 2.0 और OpenGL ES 3.0 एपीआई का इस्तेमाल करते हैं. GLES3 रेंडरर में ज़्यादा बेहतर सुविधाएं होती हैं. वहीं, GLES2 रेंडरर ज़्यादातर Android डिवाइसों के साथ काम करता है. रेंडरर, एक जैसे इनपुट सीन डेटा के लिए, थोड़ा अलग विज़ुअल आउटपुट भी जनरेट करते हैं. यह अंतर इसलिए होता है, क्योंकि GLES2 रेंडरर, sRGB कलर स्पेस का इस्तेमाल करता है. वहीं, GLES3 रेंडरर, लीनियर कलर स्पेस का इस्तेमाल करता है.
रेंडरर चुनना
GLES2
GLES2 रेंडरर, 2D या 3D प्रोजेक्ट के लिए सबसे सही है. इसमें ग्राफ़िक की सामान्य ज़रूरतें होती हैं. साथ ही, यह लगभग सभी चालू Android डिवाइसों के साथ काम करता है. अगर आपका प्रोजेक्ट पुराने डिवाइसों पर अच्छी तरह से काम करने के लिए डिज़ाइन किया गया है और आपको उन डिवाइसों के लिए सहायता देनी है, तो GLES2 सबसे अच्छा विकल्प हो सकता है.
Android पर GLES2 रेंडरर की एक ज़रूरी सीमा यह है कि इसमें सिर्फ़ एक कंप्रेस किए गए टेक्सचर फ़ॉर्मैट का इस्तेमाल किया जा सकता है: ETC1. ETC1 फ़ॉर्मैट में ऐल्फ़ा चैनल काम नहीं करता. अन्य इंजन, दोहरे ETC1 टेक्सचर का इस्तेमाल कर सकते हैं. इनमें से एक टेक्सचर में रंग का डेटा और दूसरे टेक्सचर में ऐल्फ़ा चैनल का डेटा होता है. Godot ऐसा नहीं करता. Android पर GLES2 रेंडरर का इस्तेमाल करने वाले प्रोजेक्ट में, ऐल्फ़ा चैनल शामिल करते समय बिना कंप्रेस की गई बनावटों का इस्तेमाल करना ज़रूरी है. बिना कंप्रेस किए गए टेक्सचर, कंप्रेस किए गए टेक्सचर की तुलना में ज़्यादा मेमोरी का इस्तेमाल करते हैं. साथ ही, ये कंप्रेस किए गए टेक्सचर की तरह बेहतर परफ़ॉर्म नहीं करते. खास तौर पर, कम संसाधनों वाले पुराने डिवाइसों में, बिना कंप्रेस की गई बड़ी बनावटों का इस्तेमाल करते समय समस्याएं आ सकती हैं. इनमें मेमोरी की सीमाएं भी शामिल हैं.
ऐसा हो सकता है कि GLES2 रेंडरर के लिए, ऐडवांस रेंडरिंग की सुविधाएं उपलब्ध न हों. GLES2 रेंडरर की सीमाओं में ये शामिल हैं. हालांकि, इनके अलावा और भी सीमाएं हो सकती हैं:
- रीयल-टाइम में चालू लाइट के हिसाब से परफ़ॉर्मेंस का खराब होना.
- रेंडरिंग की सुविधाओं के लिए सहायता नहीं मिलती. जैसे, हाई-डेफ़िनिशन रेंज, रिफ़्रैक्शन प्रॉपर्टी, स्क्रीन स्पेस रिफ़्लेक्शन या स्क्रीन स्पेस ऐम्बिएंट ऑक्लूज़न.
- शेडर की जटिलता पर पाबंदियां.
- रीयल-टाइम ग्लोबल इल्यूमिनेशन की सुविधा उपलब्ध नहीं है.
- पार्टिकल के लिए, जीपीयू ऐक्सेलरेटर की सुविधा उपलब्ध नहीं है.
GLES3
GLES3 रेंडरर, OpenGL ES 3.0 के साथ काम करने वाले Android डिवाइसों के साथ काम करता है. ऐसे डिवाइसों की संख्या, इस्तेमाल किए जा रहे Android डिवाइसों की कुल संख्या का करीब 90% है. सिर्फ़ पुराने Android डिवाइसों पर OpenGL ES 3.0 काम नहीं करता.
GLES3 रेंडरर, OpenGL ES 3.0 वाले किसी भी डिवाइस के साथ काम करता है. हालांकि, ध्यान रखें कि पुराने डिवाइसों पर यह स्वीकार्य फ़्रेम रेट पर नहीं चलता है. कुछ पुराने डिवाइसों में, OpenGL ES 3.0 को लागू करने के दौरान ग्राफ़िक ड्राइवर से जुड़ी गड़बड़ियां भी होती हैं. Android पर GLES3 रेंडरर में, ड्राइवर से जुड़ी गड़बड़ियों को ठीक करने के लिए सीमित सुविधाएं उपलब्ध हैं. हालांकि, नए डिवाइसों में ये समस्याएं कम होती हैं.
GLES3 रेंडरर, Android पर ETC2 टेक्सचर कंप्रेस करने के फ़ॉर्मैट के साथ काम करता है. ETC1 के उलट, ETC2 में ऐल्फ़ा चैनल के लिए सहायता शामिल है.
ज़्यादा जानकारी के लिए, Godot का दस्तावेज़ - GLES2 और GLES3 के बीच अंतर देखें