Android ใช้ OpenGL ES ความแตกต่างระหว่างมันกับ OpenGL คืออะไร
Android ใช้ OpenGL ES ความแตกต่างระหว่างมันกับ OpenGL คืออะไร
คำตอบ:
OpenGL ES (ระบบสมองกลฝังตัว) เป็น OpenGL รุ่นที่ไม่ใช้งาน มีความแตกต่างมากมายระหว่างสองสิ่งนี้และถ้าคุณต้องการเข้าไปดูรายละเอียดคุณสามารถอ่านกระดาษข้อมูลจำเพาะ 128 เล่มนี้ได้ แต่ ES เป็นชุดย่อยของ OpenGL ดังนั้นแอป ES ทั้งหมดทำงานบนระบบที่ไม่ใช่ของ ES แต่ไม่ใช่ในทางตรงกันข้าม
ไม่มีที่ใดที่หนึ่งที่คุณสามารถกำหนดสิ่งที่อยู่ใน ES และสิ่งที่ไม่ได้เป็น แม้แต่คำจำกัดความเดียวคือ "OpenGL-ES ก็เหมือนกับ OpenGL แต่ไม่มีอะไรมากมายตัวอย่างเช่นไม่มี glBegin หรือ glEnd"
อนิจจาไม่ใช่หนึ่งในคำตอบที่สมบูรณ์และถูกต้องทั้งหมด จริง ๆ แล้ว OpenGL-ES ทำสองสิ่งที่ OpenGL ทำไม่ได้:
1) มันดึงลงแล้วขยาย OpenGL APIs เพื่อให้เหมาะสำหรับแพลตฟอร์มมือถือ นั่นคือก่อนอื่นพวกเขาจะแยก API และคุณลักษณะที่คุณไม่ต้องการและเป็นภาระสำหรับการใช้งานมือถือเช่นการแสดงผลรูปหลายเหลี่ยมหรือใช้รายการที่แสดง จากนั้นจะสร้างส่วนขยายที่รอบคอบเพื่อให้มีประโยชน์มากขึ้นสำหรับแพลตฟอร์มมือถือ แม้ว่าฉันจำตัวอย่างของเรื่องนี้ไม่ได้
2) ให้ส่วนต่อประสานกับโปรแกรมจัดการหน้าต่าง (และฮาร์ดแวร์กราฟิกดั้งเดิม) ของแพลตฟอร์มมือถือ ส่วนนี้ของ OpenGL-ES หรือที่รู้จักกันในชื่อ EGL นั้นคล้ายกับ GLUT บนเดสก์ท็อปเป็นอย่างมาก ยกเว้นว่าไม่มีวิธีการอำนวยความสะดวกเหล่านั้นที่ไม่จำเป็นอย่างเคร่งครัดสำหรับส่วนต่อประสานนั้น ดังนั้นจึงไม่มี API สำหรับการวาดรูปทรงหลายเหลี่ยมหรือทรงกลม (เช่นเดียวกับ GLUT) แต่มีตัวอย่างเช่น API ที่สอดคล้องกับ init () ของ GLUT และ DisplayFunc () และการเรียกกลับของ ReshapeFunc ()
มีสองเวอร์ชัน OpenGL ES บน Android:
คำเตือน OpenGL ES 2.0 เข้ากันไม่ได้กับ OpenGL ES 1.X!
โทรศัพท์ Android เกือบทุกเครื่องมี OpenGL 1.X GPU และส่วนใหญ่มี 2.0 OpenGL ES 2.0 นั้นสามารถใช้งานได้กับ Android 2.x หรือใหม่กว่าเท่านั้น