ตัวเลือกโหมดแสดงภาพ Godot

Godot รองรับเครื่องมือการแสดงผล 2 รายการ ได้แก่ GLES2 และ GLES3 คุณควรเลือก ระหว่าง GLES2 หรือ GLES3 เมื่อเริ่มโปรเจ็กต์ และหลีกเลี่ยงการเปลี่ยนหาก เป็นไปได้ โปรเจ็กต์สามารถสลับไปมาระหว่างเครื่องมือการแสดงผลทั้ง 2 นี้ได้ แต่การสลับต้องมีการย้ายข้อมูลเพิ่มเติม

ใน Android ตัวแสดงผลเหล่านี้จะใช้ API ของ OpenGL ES 2.0 และ OpenGL ES 3.0 ตามลำดับ โปรแกรมแสดงผล GLES3 มีความสามารถและ ฟีเจอร์ที่ซับซ้อนกว่า ในขณะที่โปรแกรมแสดงผล GLES2 ใช้งานร่วมกับอุปกรณ์ Android ได้มากกว่า โปรแกรมแสดงผลยังสร้างเอาต์พุตภาพที่แตกต่างกันเล็กน้อยสำหรับข้อมูลฉาก อินพุตที่เหมือนกันด้วย ความแตกต่างนี้เกิดจากตัวแสดงผล GLES2 ที่ใช้พื้นที่สี sRGB ในขณะที่ตัวแสดงผล GLES3 ใช้พื้นที่สีเชิงเส้น

การเลือกโปรแกรมแสดงผล

GLES2

โปรแกรมแสดงผล GLES2 เหมาะสมที่สุดสำหรับโปรเจ็กต์ 2 มิติหรือ 3 มิติที่มีข้อกำหนดด้านกราฟิกไม่สูงนัก และใช้ได้กับอุปกรณ์ Android ที่ยังมีการใช้งานอยู่เกือบทั้งหมด หากโปรเจ็กต์ของคุณออกแบบมาให้ทำงานได้ดีในอุปกรณ์รุ่นเก่าและคุณต้องการรองรับอุปกรณ์เหล่านั้น GLES2 อาจเป็นตัวเลือกที่ดีที่สุด

ข้อจำกัดที่สำคัญของโปรแกรมแสดงผล GLES2 ใน Android คือรองรับรูปแบบพื้นผิวที่บีบอัดเพียงรูปแบบเดียวเท่านั้น นั่นคือ ETC1 ETC1 ไม่รองรับช่องอัลฟ่า เอนจินอื่นๆ อาจใช้เท็กซ์เจอร์ ETC1 แบบคู่เป็นวิธีแก้ปัญหา โดยเท็กซ์เจอร์หนึ่งมีข้อมูลสีและอีกเท็กซ์เจอร์หนึ่งมีข้อมูลช่องอัลฟ่า Godot ไม่ได้ทำเช่นนี้ โปรเจ็กต์ที่ใช้โปรแกรมแสดงผล GLES2 ใน Android ต้องใช้พื้นผิวที่ไม่ได้บีบอัดเมื่อรวมช่องอัลฟ่า พื้นผิวที่ไม่ได้บีบอัดจะใช้หน่วยความจำมากกว่าอย่างมากและทำงานได้ไม่ดีเท่า พื้นผิวที่บีบอัด อุปกรณ์รุ่นเก่าที่มีทรัพยากรจำกัดอาจพบปัญหาเมื่อใช้เท็กซ์เจอร์ขนาดใหญ่ที่ไม่ได้บีบอัด โดยอาจรวมถึงการพบขีดจำกัดของหน่วยความจำด้วย

ฟีเจอร์การแสดงผลขั้นสูงอาจไม่พร้อมใช้งานสำหรับโปรแกรมแสดงผล GLES2 ข้อจำกัดของโปรแกรมแสดงผล GLES2 รวมถึงแต่ไม่จำกัดเพียง

  • การปรับขนาดประสิทธิภาพที่ไม่ดีต่อแสงแบบเรียลไทม์ที่ใช้งานอยู่
  • ไม่รองรับฟีเจอร์การแสดงผล เช่น ช่วงความละเอียดสูง คุณสมบัติการหักเห แสงสะท้อนในพื้นที่หน้าจอ หรือการบดบังโดยรอบในพื้นที่หน้าจอ
  • ข้อจำกัดเกี่ยวกับความซับซ้อนของ Shader
  • ไม่รองรับการส่องสว่างทั่วโลกแบบเรียลไทม์
  • ไม่มีการรองรับการเร่ง GPU สำหรับอนุภาค

GLES3

โปรแกรมแสดงผล GLES3 ใช้ได้กับอุปกรณ์ Android ที่ใช้งานอยู่ประมาณ 90% ซึ่งรองรับ OpenGL ES 3.0 มีเพียงอุปกรณ์ Android ที่เก่าที่สุดที่ยังใช้งานอยู่เท่านั้นที่ไม่มีการรองรับ OpenGL ES 3.0

แม้ว่าตัวแสดงผล GLES3 จะเข้ากันได้กับ อุปกรณ์ OpenGL ES 3.0 ทุกเครื่อง แต่โปรดทราบว่าอุปกรณ์รุ่นเก่า มีแนวโน้มที่จะทำงานที่อัตราเฟรมที่ยอมรับได้น้อยกว่า อุปกรณ์รุ่นเก่าบางรุ่นยังมีข้อบกพร่องของไดรเวอร์กราฟิกในการติดตั้งใช้งาน OpenGL ES 3.0 ด้วย โปรแกรมแสดงผล GLES3 ใน Android มีการลดความเสี่ยงสำหรับข้อบกพร่องของไดรเวอร์แบบจำกัด ปัญหาเหล่านี้ไม่ค่อยน่ากังวลในอุปกรณ์รุ่นใหม่

โปรแกรมแสดงผล GLES3 รองรับรูปแบบการบีบอัดพื้นผิว ETC2 ใน Android ETC2 รองรับช่องอัลฟ่า ซึ่งต่างจาก ETC1

ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ Godot - ความแตกต่างระหว่าง GLES2 กับ GLES3