אפשרויות כלי לרינדור Godot

‫Godot תומכת בשני מנועי רינדור: GLES2 ו-GLES3. כדאי לבחור בין GLES2 ל-GLES3 כשמתחילים את הפרויקט, ועדיף להימנע ממעבר בין האפשרויות אם אפשר. אפשר לעבור בין שני מנועי הרינדור האלה בפרויקטים, אבל המעבר דורש עבודת העברה נוספת.

ב-Android, מעבדי הרינדור האלה משתמשים בממשקי ה-API‏ OpenGL ES 2.0 ו-OpenGL ES 3.0 בהתאמה. למעבד התצוגה GLES3 יש יכולות ותכונות מתקדמות יותר, ומעבד התצוגה GLES2 תואם ליותר מכשירי Android. בנוסף, מנועי הרינדור יוצרים פלט ויזואלי שונה במקצת לנתוני סצנה זהים. ההבדל הזה נובע מכך שכלי הרינדור GLES2 משתמש במרחב הצבעים sRGB, בעוד שכלי הרינדור GLES3 משתמש במרחב צבעים לינארי.

בחירת רכיב עיבוד

GLES2

הכלי GLES2 renderer מתאים ביותר לפרויקטים דו-ממדיים או תלת-ממדיים עם דרישות גרפיות צנועות, והוא תואם כמעט לכל מכשירי Android הפעילים. אם הפרויקט שלכם מיועד לפעול בצורה טובה במכשירים ישנים יותר, ואתם מתכוונים לתמוך בהם, יכול להיות ש-GLES2 היא הבחירה הטובה ביותר.

מגבלה חשובה של רכיב ה-renderer של GLES2 ב-Android היא שנתמך רק פורמט דחיסה אחד של טקסטורה: ETC1. ‫ETC1 לא תומך בערוץ אלפא. מנועים אחרים עשויים להשתמש בטקסטורות כפולות של ETC1 כפתרון עקיף, כאשר טקסטורה אחת מכילה נתוני צבע וטקסטורה שנייה מכילה את נתוני ערוץ האלפא. ‫Godot לא עושה את זה. בפרויקטים שמשתמשים ב-GLES2 renderer ב-Android, צריך להשתמש בטקסטורות לא דחוסות כשכוללים ערוץ אלפא. טקסטורות לא דחוסות צורכות הרבה יותר זיכרון, והביצועים שלהן לא טובים כמו של טקסטורות דחוסות. במיוחד במכשירים ישנים עם משאבים מוגבלים, יכולות להיות בעיות בשימוש בטקסטורות גדולות לא דחוסות, כולל חריגה ממגבלות הזיכרון.

יכול להיות שתכונות מתקדמות של רינדור לא יהיו זמינות לרינדור GLES2. המגבלות של רכיב ה-renderer של GLES2 כוללות, בין היתר:

  • התאמת ביצועים נמוכה לכל אור פעיל בזמן אמת.
  • אין תמיכה בהצגת תכונות כמו טווח דינמי גבוה (HDR), מאפייני שבירה, השתקפויות במרחב המסך או חסימת אור סביבתי במרחב המסך.
  • הגבלות על מורכבות של Shader.
  • אין תמיכה בתאורה גלובלית בזמן אמת.
  • אין תמיכה בהאצת GPU לחלקיקים.

GLES3

המעבד הגרפי GLES3 תואם לכ-90% מהמכשירים הפעילים עם Android שתומכים ב-OpenGL ES 3.0. רק במכשירים ישנים יותר עם Android אין תמיכה ב-OpenGL ES 3.0.

רכיב ה-renderer של GLES3 תואם לכל מכשיר עם OpenGL ES 3.0, אבל חשוב לזכור שבמכשירים ישנים יותר יש סיכוי נמוך יותר להפעלה בקצב פריימים מקובל. במכשירים ישנים מסוימים יש גם באגים במנהל ההתקן הגרפי בהטמעות של OpenGL ES 3.0. למעבד התצוגה GLES3 ב-Android יש אמצעי הגנה מוגבלים מפני באגים במנהלי ההתקנים. הבעיות האלה פחות משמעותיות במכשירים חדשים יותר.

מעבד ה-GLES3 תומך בפורמט הדחיסה של טקסטורת ETC2 ב-Android. בניגוד ל-ETC1, ‏ ETC2 כולל תמיכה בערוץ אלפא.

מידע נוסף זמין במאמר Godot Documentation - Differences between GLES2 and GLES3