Quali sono le differenze tra OpenGL ES e OpenGL?
Quali sono le differenze tra OpenGL ES e OpenGL?
Risposte:
Due delle differenze più significative tra OpenGL ES e OpenGL sono la rimozione della semantica di chiamata glBegin ... glEnd per il rendering primitivo (a favore degli array di vertici) e l'introduzione di tipi di dati a virgola fissa per le coordinate e gli attributi dei vertici per supportare meglio le capacità di calcolo dei processori incorporati, che spesso mancano di una FPU
OpenGL ES è l'API opengl per i sistemi embedded. È più semplice del normale opengl in termini di numero di funzioni API, ma potrebbe essere più difficile da usare, poiché dovrai usare i buffer dei vertici e scrivere più shader.
Quando usi un normale opengl, puoi usare glBegin e glEnd per racchiudere le primitive di geometria che devi disegnare, ma quando usi Opengl ES, dovrai usare i buffer dei vertici. Immagino che questo sia per problemi di prestazioni.
Attualmente, ci sono due versioni di Opengl ES, la versione 1.1 può supportare solo la pipeline di rendering fissa, mentre la versione 2.0 supporta glsl shader. Tuttavia non ha una pipeline di rendering fissa. In altre parole, dovrai scrivere il tuo shader per tutto.
Opengl ES è utilizzato principalmente su telefoni cellulari e web (webgl). Secondo le specifiche, il tuo driver opengl desktop può supportare tutte le API opengl.
Proprio come aggiungere che OpenGL 3.3 e OpenGL ES 2.0 sono per lo più interoperabili, utilizzando un sottoinsieme delle funzionalità di OpenGL 3.3. Il mio motore C ++ personalizzato utilizza le stesse chiamate API, con poche definizioni, per Android / IOS / Windows / OSX / Linux.
Tra le differenze principali ci sono:
Ci sono anche molte altre differenze, ma questo copre molte di quelle importanti.
OpenGL ES significa Open Graphics Library for Embedded Systems (OpenGL ES o GLES) è un sottoinsieme dell'interfaccia di programmazione dell'applicazione (API) per il rendering di grafica per computer OpenGL per il rendering di grafica computerizzata 2D e 3D come quelle utilizzate dai videogiochi, tipicamente con accelerazione hardware utilizzando un'unità di elaborazione grafica (GPU). È progettato per sistemi embedded come smartphone, tablet per computer, console per videogiochi e PDA.
Il sito web ufficiale di OpenGL | ES: http://www.opengl.org/
puoi anche ottenere maggiori informazioni dal wiki: http://en.wikipedia.org/wiki/OpenGL_ES
Consulta la panoramica di OpenGL ES qui: http://www.khronos.org/opengles/
In breve, ES è un sottoinsieme di Open GL per "sistemi embedded". Le differenze specifiche dipenderanno dalle versioni e dai set di funzionalità che stai confrontando.
Il registro di OpenGL ES contiene differenze API dettagliate tra OpenGL ES e la versione corrispondente di OpenGL:
Tuttavia, non esiste un documento contenente le differenze per OpenGL ES 3.0.
Penso che otterrai una risposta migliore se chiedi "quali sono le differenze tra OpenGL e OpenGL ES".
Esistono profonde differenze tra OpenGL ES 1.1 ed ES 2.0, OpenGL 1.5 e 2.0 e OpenGL 3.0 e 4.0.
Come altri hanno descritto, ES è stato scritto per sistemi embedded. Rappresenta anche la prima "pulizia della casa" della specifica GL sin dal suo inizio. OpenGL aveva a) molti modi per fare la stessa cosa (es. Potevi disegnare un quad / rect in due modi diversi e blit un'immagine pixel in due modi diversi, ecc.). ES è più semplice di OpenGL con meno funzionalità come affermazione generale perché è progettato per hardware meno sofisticato.
Ti esorto a non guardare OpenGL ES 1.1 in quanto è il passato e non rappresenta il modo in cui OpenGL o OpenGL ES si stanno muovendo architettonicamente in futuro.
La terminologia e le versioni sono piuttosto confuse (specialmente per i neofiti). Per una visione più olistica di OpenGL e OpenGL-ES (GLES), vedere OpenGL - Then and Now .
La differenza principale tra i due è che OpenGL ES è fatto per sistemi embedded come gli smartphone, mentre OpenGL è quello sui desktop. A livello di codifica, OpenGL ES non supporta funzioni a funzione fissa come glBegin / glEnd ecc ... OpenGL può supportare pipeline a funzione fissa (utilizzando un profilo di compatibilità).
La risposta moderna, per ES 3.0 rispetto a OpenGL 4.6, è molto diversa dalla risposta accettata. Ora, tutta la roba della pipeline fissa è sparita.
ES, per EMBEDDED SYSTEMS, è molto meno robusto.
OpenGL ES è semplicemente l'API OpenGL per i sistemi embedded (OpenGL ES si riferisce a OpenGL Embedded Systems). quindi è un sottoinsieme di OpenGL e ampiamente utilizzato nei telefoni cellulari e in alcuni sistemi di realtà virtuale è progettato per hardware meno sofisticato. OpenGL ES ha meno termini e funzioni di OpenGL, pensalo come: prendi solo ciò di cui hai bisogno per quel sistema perché se non abbiamo bisogno di una funzione in tutto il nostro lavoro o l'hardware non può gestirla, quindi non significa aggiungere quella funzione ma in questo rende l'uso di questa API più difficile a causa della necessità di scrivere più Shader e codici complicati per fare qualcosa di semplice perché OpenGL ES non fornisce Shader nella pipeline grafica come OpenGL. l'ultima versione di OpenGL ES è la 3.2 e ora può fornire supporto per la tassellatura per dettagli geometrici aggiuntivi, nuovi shader geometrici. quindi ti consiglio di iniziare ad imparare o utilizzare OpenGL ES 3.0+ (nel caso sia la tua lingua di destinazione) perché ora e la prossima generazione non utilizzerà le vecchie versioni con hardware e schede grafiche più potenti e se il tuo obiettivo è OpenGL inizia con v3. 3+ o 4.0+. se hai più tempo nessun problema per fare una rapida occhiata alle vecchie versioni per capire meglio come si sono sviluppate le cose e perché. puoi controllare questo link per maggiori dettagli:https://en.wikipedia.org/wiki/OpenGL_ES
OpenGL è un'API grafica 2D e 3D che porta migliaia di applicazioni su un'ampia varietà di piattaforme di computer.
OpenGL ES è un sottoinsieme ben definito di OpenGL desktop.
OpenGL® ES è un'API multipiattaforma esente da royalty per grafica 2D e 3D con funzionalità complete su sistemi embedded, inclusi console, telefoni, elettrodomestici e veicoli. Consiste di sottoinsiemi ben definiti di OpenGL desktop, ...
Vedi questo collegamento .
PS
WebGL condivide le specifiche con OpenGL ES, cioè se hai imparato OpenGL desktop, è semplice imparare gli altri (OpenGL ES, WebGL).