Android utilizza OpenGL ES, qual è la differenza tra esso e OpenGL?
Android utilizza OpenGL ES, qual è la differenza tra esso e OpenGL?
Risposte:
OpenGL ES (Embedded Systems) è una versione ridotta di OpenGL. Ci sono molte differenze tra quei due e se vuoi approfondire i dettagli, puoi leggere questo documento sulle specifiche 128. Ma ES è un sottoinsieme di OpenGL, quindi tutte le app ES funzionano su sistemi non ES ma non il contrario.
Non esiste un posto in cui puoi facilmente definire cosa c'è in ES e cosa no. Anche una definizione è "OpenGL-ES è proprio come OpenGL, ma senza molte cose. Ad esempio, non c'è glBegin o glEnd."
Purtroppo, finora nessuna delle risposte è completa e pienamente corretta. In realtà, OpenGL-ES fa due cose che OpenGL non fa:
1) si spoglia e quindi estende le API OpenGL per renderlo adatto a una piattaforma mobile. Cioè, prima eliminano le API e le funzionalità che davvero non ti servono e sono onerose per le implementazioni mobili, come il rendering di poligoni o l'utilizzo di elenchi di visualizzazione. Quindi rende alcune estensioni giudiziose per renderlo più utile per la piattaforma mobile. Non riesco nemmeno a ricordare un esempio di questo, però.
2) fornisce l'interfaccia al gestore delle finestre (e quindi all'hardware grafico nativo) della piattaforma mobile. Questa parte di OpenGL-ES, nota come EGL, è molto simile a GLUT sul desktop. Solo che non ha nessuno di quei metodi di convenienza che non sono strettamente necessari per quella interfaccia. Quindi non esiste un'API per disegnare poliedri o sfere (come in GLUT). Ma ci sono, ad esempio, API che corrispondono a init () di GLUT e callback DisplayFunc () e ReshapeFunc ().
Esistono due versioni di OpenGL ES disponibili su Android:
Attenzione, OpenGL ES 2.0 non è compatibile con OpenGL ES 1.X!
Quasi tutti i telefoni Android hanno GPU OpenGL 1.X e la maggior parte ha 2.0. OpenGL ES 2.0 è disponibile solo con Android 2.xo versioni successive.