OpenGL ES

Da Wikipedia, l'enciclopedia libera.
OpenGL ES
Sviluppatore Khronos Group
Ultima versione 3.1 (17 marzo 2014)
Sistema operativo Multipiattaforma
Linguaggio
Genere Libreria software (non in lista)
Computer grafica
Licenza Varie
(Licenza libera)
Sito web www.khronos.org/opengles/

OpenGL ES è un sottoinsieme delle librerie grafiche OpenGL pensato per dispositivi integrati (telefoni cellulari, PDA ecc. ma anche strumentazione scientifica e industriale). Viene gestito dal consorzio no-profit Gruppo Khronos, che cura anche lo sviluppo della libreria madre OpenGL.

Versioni[modifica | modifica wikitesto]

Attualmente esistono molte versioni diverse delle specifiche OpenGL ES. La versione 1.0 venne ricalcata sulla versione 1.3 di OpenGL, mentre la versione 1.1 si basa su OpenGL 1.5 e la 2.0 è definita in relazione a OpenGL 2.0. Sia la versione 1.0 che la 1.1 supportano due profili, common e common-lite; il profilo lite supporta solo tipi di dato interi invece dei normali dati in virgola mobile, mentre il profilo common li supporta entrambi.

OpenGL ES prevede inoltre un altro profilo safety-critical pensato per sistemi critici e/o ad alta sicurezza come display avionici, strumentazione per aeromobili e applicazioni militari: caratteristiche principali di questo profilo sono la stabilità, la testabilità e l'intrinseca robustezza.

OpenGL ES 1.0[modifica | modifica wikitesto]

Contiene molte funzionalità delle OpenGL originali e ne aggiunge alcune. Le due differenze principali sono la rimozione della semantica di chiamata glBegin ... glEnd per il rendering delle primitive (in favore dei vertex arrays) e l'introduzione dei dati in virgola fissa per le coordinate dei vertici delle primitive e degli attributi, per sfruttare meglio le capacità di calcolo dei processori embedded che spesso non hanno una FPU. Le altre differenze sono numerose ma di portata minore, quasi tutte semplificazioni per produrre un'interfaccia più semplice ed essenziale. Sono state tolte le primitive di rendering di quadrati e poligoni, i texgen, la modalità poligonale, le linee e i poligoni punteggiati, il rendering di poligoni antialiased (con frammenti bordo alfa, non multisampled), le funzioni ARB_Image su classi di pixel, le bitmap, le texture 3D, il disegno sul frontbuffer,il buffer di accumulazione, la copia pixel, il push/pop degli attributi di stato, le display list, i valutatori, le selezioni, i feedback, l'illuminazione su due lati e i piani di clipping definiti dall'utente.

OpenGL ES 1.1[modifica | modifica wikitesto]

Aggiunge le funzionalità di supporto obbligatorio al multitexturing, normale e migliorato (con combinatori e operazioni di prodotto scalare fra texture), generazione automatica di mipmap, oggetti vertex buffer, query sullo stato e in generale un maggior controllo sul rendering di punti. Vengono introdotti i piani di clipping utente.

OpenGL ES 2.0[modifica | modifica wikitesto]

Vengono rilasciate nel Marzo 2007[1], ed eliminano la maggior parte della pipeline di rendering a funzioni fisse in favore di una programmabile: quasi tutte le funzioni di rendering della pipeline di transform & lighting, come il settaggio dei parametri di luci e materiali, vengono sostituite da vertex shaders e pixel shaders programmati separatamente. Per questo, OpenGL ES 2.0 non è retrocompatibile con le versioni 1.0 e 1.1.

OpenGL ES 3.0[modifica | modifica wikitesto]

Questa specifica è stato rilasciata pubblicamente nel mese di agosto 2012 ed è compatibile con OpenGL ES 2.0.

Nuove funzionalità nella ES OpenGL 3.0:

  • Diversi miglioramenti alla pipeline di rendering per consentire l'accelerazione di effetti visivi avanzati, tra cui: le query di occlusione, feedback di trasformazione, istanze di rendering e il supporto per quattro o più target di rendering
  • Alta qualità ETC2 / EAC compressione texture come caratteristica standard, eliminando la necessità di una diversa serie di strutture per ogni piattaforma
  • Nuova versione del linguaggio di shading GLSL ES con il supporto completo per interi e 32 bit operazioni in virgola mobile;
  • Notevolmente migliorata la funzionalità texturing tra cui il supporto garantito per le texture in virgola mobile, texture 3D, texture, texture vertice profondità, texture NPOT, R / RG texture, texture, texture immutabile matrice 2D, swizzles, LOD e morsetti MIP, mappe cubo senza soluzione di continuità e oggetti campionatore
  • Un vasto insieme di richieste, la struttura richiede in modo esplicito le dimensioni e render-buffer formati, riducendo la variabilità e rendendo molto più facile la scrittura di applicazioni portatili.

OpenGL ES 3.1[modifica | modifica wikitesto]

La specifica OpenGL ES 3.1 è stata rilasciata al pubblico in marzo 2014. Le nuove funzionalità in OpenGL ES 3.1 include: *shaders Compute

  • Vertex e fragment shader indipendenti
  • Comandi di disegno indiretti

OpenGL ES 3.1 è compatibile con OpenGL ES 2.0 e 3.0, consentendo alle applicazioni di integrare gradualmente con le nuove funzionalità.

Uso delle OpenGL ES[modifica | modifica wikitesto]

OpenGL ES 1.0[modifica | modifica wikitesto]

OpenGL ES 1.1[modifica | modifica wikitesto]

OpenGL ES 2.0[modifica | modifica wikitesto]

OpenGL ES 3.0[modifica | modifica wikitesto]

  • Supportate da Android dalla versione 4.3[12]
  • Supportate da iPhone 5S

OpenGL ES 3.1[modifica | modifica wikitesto]

Supportato da Windows, Linux, Android (da Lollipop) sui dispositivi con hardware adeguato e driver, tra cui:

  • Adreno serie 400 [26] [27]
  • Intel HD Graphics per la serie Intel Atom Z3700 (Android)
  • Intel HD Graphics per Intel Celeron N e Serie J (Android)
  • Intel HD Graphics per Intel Pentium N e Serie J (Android)
  • Mali T6xx (Midgard) serie in poi [28] (Android, Linux)
  • Nvidia GeForce serie 400 in poi (Windows)
  • Nvidia Tegra K1 (Android)
  • Nvidia Tegra X1 (Android)
  • PowerVR Series 6, 6XE, 6XT, 7XE e 7XT (Linux, Android)
  • Serie Vivante GC2000 in poi (optional con GC800 e GC1000)

Note[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Altre letture[modifica | modifica wikitesto]

software libero Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero