O Android usa o OpenGL ES, qual a diferença entre ele e o OpenGL?
O Android usa o OpenGL ES, qual a diferença entre ele e o OpenGL?
Respostas:
O OpenGL ES (Sistemas Incorporados) é uma versão simplificada do OpenGL. Existem muitas diferenças entre os dois e, se você quiser entrar em detalhes, poderá ler este documento de especificação 128. Como o ES é um subconjunto do OpenGL, todos os aplicativos de ES funcionam em sistemas que não são do ES, mas não o contrário.
Não há um lugar onde você possa definir facilmente o que está no ES e o que não está. Mesmo uma definição é "OpenGL-ES é como o OpenGL, mas sem muitas coisas. Por exemplo, não há glBegin ou glEnd".
Infelizmente, nenhuma das respostas até agora é completa e totalmente correta. Realmente, o OpenGL-ES faz duas coisas que o OpenGL não faz:
1) retira e estende as APIs do OpenGL para torná-lo adequado para uma plataforma móvel. Ou seja, primeiro eles eliminam as APIs e os recursos que você realmente não precisa e são onerosos para implementações móveis, como renderizar polígonos ou usar listas de exibição. Em seguida, ele faz algumas extensões criteriosas para torná-lo mais útil para a plataforma móvel. Eu nem me lembro de um exemplo disso, no entanto.
2) fornece a interface para o gerenciador de janelas (e, portanto, o hardware gráfico nativo) da plataforma móvel. Essa parte do OpenGL-ES, conhecida como EGL, é muito parecida com o GLUT na área de trabalho. Exceto que ele não possui nenhum desses métodos de conveniência que não são estritamente necessários para essa interface. Portanto, não há API para desenhar poliedros ou esferas (como no GLUT). Mas há, por exemplo, APIs que correspondem ao init () do GLUT e aos retornos de chamada DisplayFunc () e ReshapeFunc ().
Existem duas versões do OpenGL ES disponíveis no Android:
Atenção, o OpenGL ES 2.0 não é compatível com o OpenGL ES 1.X!
Quase todos os telefones Android têm GPU OpenGL 1.X e a maioria tem 2.0. O OpenGL ES 2.0 está disponível apenas no Android 2.x ou mais recente.