Comecei a aprender um pouco de desenvolvimento do Android e uma das primeiras coisas que pensei em fazer é um jogo simples. No entanto, sou confrontado com uma pergunta difícil logo de cara. Devo usar o OpenGL ES 1.0 ou 2.0?
O jogo que eu imaginei será bastante simples graficamente, utilizando 2D (gráficos do tipo de cima para baixo em mosaico) e visualizações isométricas de câmera fixa. Eu nunca usei o OpenGL em um ambiente de área de trabalho, por isso não sei se os shaders serão algo que vou usar etc.
De acordo com esta página , devo usar o OpenGL ES 2.0 geralmente para novos desenvolvimentos. No entanto, meu próprio telefone recentemente (no ano passado) recebeu uma atualização para obtê-lo no Android 2.2 necessário. (Eu nem sei se ele tem suporte ao OpenGL ES 2.0)
Então, basicamente, minha pergunta é: vou me beneficiar de algum dos recursos do OpenGL ES 2.0 acima de 1.0 e / ou vale a pena em termos de compatibilidade?
fonte
Respostas:
Se você tem pouca ou nenhuma experiência com o OpenGL, eu não sugeriria o 2.0.
Com o OpenGL ES 2.x, você terá que escrever suas próprias rotinas para manipulação de matrizes e escrever seus próprios shaders. Isso dá muito trabalho, muita coisa pode dar errado e a depuração de muitas dessas coisas é muito dolorosa.
Somente se você achar que precisará de alguns dos recursos do OpenGL ES 2.0, deverá usá-lo.
Edit: Se o exposto acima não for suficiente para assustá-lo, sugiro que você faça um exemplo trivial no OpenGL ES 1.xe tente fazer o mesmo exemplo no OpenGL ES 2.x. Você pode, por exemplo, desenhar um cubo rotativo com uma textura aplicada a ele.
fonte
Bem, isto depende. Eu não tenho nenhuma experiência com ES, mas a questão geral é sempre a mesma: Função fixa antiga e obsoleta versus uma abordagem moderna centrada no shader.
Considerando que stephelton está correto, pois a antiga API ES 1 é mais fácil de entender para iniciantes e é mais fácil conseguir coisas simples sem entender toda a API (e impede que você se torne um desses caras usando shaders sem entender o que está fazendo ), No entanto, aconselho você a começar com a maneira moderna de criar gráficos em tempo real imediatamente. Embora você possa não precisar da flexibilidade dos shaders no início, ele é extremamente valioso quando você gerencia o básico. E é a maneira de criar gráficos em tempo real acelerados por hardware hoje (e amanhã).
Enquanto a compatibilidade pode ser uma preocupação (e eu não tenho uma visão geral sobre a atual posição dos dispositivos ES), por outro lado, se você usar o GL da área de trabalho, não se limite artificialmente aos recursos exclusivos do GL 1.1, apenas para oferecer suporte. placas gráficas de 20 anos. Significado, o progresso tem que começar em algum lugar.
fonte