Quais são as diferenças entre OpenGL ES e OpenGL?
Quais são as diferenças entre OpenGL ES e OpenGL?
Respostas:
Duas das diferenças mais significativas entre OpenGL ES e OpenGL são a remoção da semântica de chamada glBegin ... glEnd para renderização primitiva (em favor de matrizes de vértice) e a introdução de tipos de dados de ponto fixo para coordenadas e atributos de vértice para melhor suporte as habilidades computacionais dos processadores embarcados, que muitas vezes não possuem FPU
Dê uma olhada aqui: OpenGL_ES
OpenGL ES é o opengl api para sistemas embarcados. É mais simples do que o opengl normal em termos de número de funções API, mas pode ser mais difícil de usar, pois você terá que usar buffers de vértice e escrever mais sombreadores.
Quando você usa um opengl normal, você pode usar glBegin e glEnd para incluir as primitivas de geometria que você precisa desenhar, mas ao usar Opengl ES, você terá que usar buffers de vértice. Eu acho que isso é para questões de desempenho.
Atualmente, existem duas versões do Opengl ES, a versão 1.1 só pode suportar o pipeline de renderização fixa, enquanto a versão 2.0 suporta o glsl shader. No entanto, não possui pipeline de renderização fixo. Em outras palavras, você terá que escrever seu próprio shader para tudo.
Opengl ES é usado principalmente em telefones celulares e web (webgl). De acordo com as especificações, o driver opengl do seu desktop pode suportar todas as apis opengl es.
Apenas gostaria de acrescentar que o OpenGL 3.3 e o OpenGL ES 2.0 são principalmente interoperáveis, usando um subconjunto dos recursos do OpenGL 3.3. Meu mecanismo C ++ personalizado usa as mesmas chamadas de API, com algumas definições, para Android / IOS / Windows / OSX / Linux.
Entre as principais diferenças estão:
Existem também muitas outras diferenças, mas isso cobre várias das mais importantes.
OpenGL ES significa Open Graphics Library for Embedded Systems (OpenGL ES ou GLES) é um subconjunto da interface de programação de aplicativo (API) de renderização de gráficos de computador OpenGL para renderizar gráficos de computador 2D e 3D, como aqueles usados por videogames, normalmente acelerados por hardware usando uma unidade de processamento gráfico (GPU). Ele é projetado para sistemas embarcados como smartphones, tablets, consoles de videogame e PDAs.
Site oficial do OpenGL | ES: http://www.opengl.org/
você também pode obter mais informações no wiki: http://en.wikipedia.org/wiki/OpenGL_ES
Revise a visão geral do OpenGL ES aqui: http://www.khronos.org/opengles/
Resumindo, ES é um subconjunto do Open GL para "sistemas embarcados". Diferenças específicas dependerão das versões e conjuntos de recursos que você está comparando.
O registro do OpenGL ES contém diferenças de API detalhadas entre o OpenGL ES e a versão correspondente do OpenGL:
No entanto, não existe um documento contendo as diferenças para OpenGL ES 3.0.
Acho que você obterá uma resposta melhor se perguntar "quais são as diferenças entre OpenGL e OpenGL ES".
Existem profundas diferenças entre OpenGL ES 1.1 e ES 2.0, OpenGL 1.5 e 2.0 e OpenGL 3.0 e 4.0.
Como outros descreveram, ES foi escrito para sistemas embarcados. Ele também representa a primeira "limpeza doméstica" da especificação GL desde seu início. OpenGL tinha a) muitas maneiras de fazer a mesma coisa (por exemplo, você poderia desenhar um quadrilátero / retângulo de duas maneiras diferentes e blit uma imagem de pixel de duas maneiras diferentes, etc.) ES é mais simples do que OpenGL com menos recursos como uma declaração geral porque foi projetado para hardware menos sofisticado.
Recomendo que você não olhe para o OpenGL ES 1.1, pois é o passado e não representa a maneira como o OpenGL ou OpenGL ES está se movendo arquitetonicamente no futuro.
A terminologia e as versões são bastante confusas (especialmente para iniciantes). Para uma visão mais holística do OpenGL e OpenGL-ES (GLES), consulte OpenGL - Antes e Agora .
A principal diferença entre os dois é que o OpenGL ES é feito para sistemas embarcados como smartphones, enquanto o OpenGL é para desktops. No nível de codificação, OpenGL ES não suporta funções de função fixa como glBegin / glEnd etc ... OpenGL pode suportar pipeline de função fixa (usando um perfil de compatibilidade).
A resposta moderna, para ES 3.0 em comparação com OpenGL 4.6, é muito diferente da resposta aceita. Agora, todo o material de pipeline fixo se foi.
ES, para EMBEDDED SYSTEMS, é muito menos robusto.
OpenGL ES é simplesmente a API OpenGL para sistemas embarcados (OpenGL ES refere-se a OpenGL Embedded Systems). portanto, é um subconjunto do OpenGL e amplamente utilizado em telefones celulares e alguns sistemas VR, sendo projetado para hardware menos sofisticado. OpenGL ES tem menos termos e funções do que OpenGL, pense nisso como: você pega exatamente o que precisa para aquele sistema porque se não precisarmos de uma função em todo o nosso trabalho ou o hardware não puder lidar com isso, então não há como adicionar essa função, mas torna o uso desta API mais difícil devido à necessidade de escrever mais Shaders e códigos complicados para tornar algo simples, porque o OpenGL ES não fornece Shaders no pipeline gráfico como OpenGL. a última versão do OpenGL ES é 3.2 e agora pode fornecer suporte a Tessellation para detalhes adicionais de geometria, novos sombreadores de geometria. então aconselho você a começar a aprender ou usar OpenGL ES 3.0+ (caso seja seu idioma de destino) porque agora e a próxima geração não usará as versões antigas com hardware e placas gráficas mais potentes e se seu destino for OpenGL, comece com v3. 3+ ou 4.0+. se tiver mais tempo sem problemas para fazer uma rápida visualização das versões antigas para mais entenda como as coisas foram desenvolvidas e por quê. você pode verificar este link para mais detalhes:https://en.wikipedia.org/wiki/OpenGL_ES
OpenGL é uma API gráfica 2D e 3D que traz milhares de aplicativos para uma ampla variedade de plataformas de computador.
OpenGL ES são subconjuntos bem definidos de OpenGL para desktop.
OpenGL® ES é uma API de plataforma cruzada isenta de royalties para gráficos 2D e 3D de função completa em sistemas incorporados - incluindo consoles, telefones, aparelhos e veículos. Consiste em subconjuntos bem definidos de OpenGL para desktop, ...
Veja este link .
PS
O WebGL compartilha as especificações com o OpenGL ES, ou seja, se você aprendeu o OpenGL para desktop, é simples aprender os outros (OpenGL ES, WebGL).