O OpenGL ES 2.0 é muito diferente do ES 1.1. Você não tem mais um pipeline de função fixa, portanto, sua familiar "matriz de empurrar, traduzir, girar" etc. desapareceu.
Em vez disso, você tem o conceito de shaders: vértice e fragmento. São pequenos programas que são executados para cada vértice e cada pixel. É aí que todas as transformações e outros efeitos acontecem. Seu código preparará os dados do vértice, informará ao OpenGL como está estruturado e os entregará aos shaders.
Mas nem tudo está perdido: algumas partes do OpenGL não mudaram, como definir estados diferentes (modos de mesclagem, comparações de profundidade) ou criar texturas.
Para usar o OpenGL ES 2.0 de maneira eficaz, você precisa dominar o básico da computação gráfica em 3D, portanto, obtenha um bom livro de introdução e aprenda os princípios. Em seguida, você pode seguir para o OpenGL ES 2.0 e começar a escrever shaders. Este é um bom livro do OpenGL ES 2.0 .
Por fim, não presuma que você precise mudar para o OpenGL ES 2.0. A menos que exista algo específico que você precise e que não possa fazer no ES 1.1, continue usando o ES 1.1, pois todos os dispositivos mais novos são compatíveis com versões anteriores.
Eu tenho portado meu mecanismo 3D do OpenGL ES 1.X para o OpenGL ES 2.X porque eu amo shaders. Os renderizadores são distintos e não compartilham nenhum código.
Você pode traduzir facilmente:
Mais difícil (Precisa de shaders):
Para portar seu código, eu recomendo que você:
Passo um
Passo dois
liste todas as informações de vértices como coordenadas de vértices, normais, coordenadas de texturas, informações de cores necessárias para cada material
Com essas informações, você saberá quais programas GLSL (vértice + fragment shaders) você deve escrever.
Passo três
Etapa quatro: otimizar
fonte
O OpenGL ES 2.0 não é uma nova revisão do OpenGL ES 1.1. Ou, em outras palavras, o OpenGL ES 2.0 não é um OpenGL ES 1.1 melhor.
Bem, não, eles mudaram tudo.
É fácil ignorar a importação dessa declaração simples. Considere:
OpenGl 2.0 é uma nova revisão do OpenGL 1.5. O OpenGL 2.0 é um OpenGL 1.5 melhor.
Isso significa que, se você estiver usando o OpenGl 1.5 e quiser manter a compatibilidade direta, deverá passar para a 2.0.
O mesmo não se aplica ao OpenGL ES. 1.1 não foi substituído por 2.0. Eles são padrões diferentes. A confusão poderia ter sido eliminada se eles tivessem sido nomeados:
NOTA: tecnicamente, isso não é perfeitamente verdade. O motivo é que você pode implementar a série 1.0 com a série 2.0. Você apenas teria que definir as funções fixas do pipeline como shaders.
fonte
Como um aparte das outras respostas aqui, eu recentemente encontrei o gles2-bc, uma biblioteca C ++ 'que torna a API OpenGL ES 2.0 não compatível com versões anteriores compatível com versões anteriores'.
Existem algumas limitações conhecidas e eu não a usei, mas pensei em publicar o link para referência.
http://code.google.com/p/gles2-bc/
fonte