OpenGL ES: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
LauBot (discussione | contributi)
m Bot: rimuovo parametro ridondante (valore uguale alla proprietà P856 su Wikidata)
 
(29 versioni intermedie di 18 utenti non mostrate)
Riga 1:
{{Software
|Nome = OpenGL ES
|Logo =
|Screenshot =
|Didascalia =
|Sviluppatore = [[Gruppo Khronos|Khronos Group]]
|UltimaVersione = 3.12
|DataUltimaVersione = 17 marzo [[2014]]
|UltimaVersioneBeta =
Line 16 ⟶ 15:
|SoftwareLibero = sì
|Lingua =
|SitoWeb = [http://www.khronos.org/opengles/ www.khronos.org/opengles/]
}}
'''OpenGL ES''' è un sottoinsieme delle librerie grafiche [[OpenGL]] pensato per dispositivi integrati (telefoni cellulari, [[Personal Digital Assistant|PDA]] ecc. ma anche strumentazione scientifica e industriale). Viene gestito dal consorzio no-profit [[Gruppo Khronos Group]], che cura anche lo sviluppo della libreria madre OpenGL.
 
== Versioni ==
Line 25 ⟶ 23:
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 ====
Contiene molte funzionalità delle OpenGL originali e ne aggiunge alcune. Le due differenze principali sono la rimozione della semantica di chiamata <code>glBegin</code> ... <code>glEnd</code> 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 [[Unità di calcolo in virgola mobile|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 <code>ARB_Image</code> 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 ====
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 ====
Vengono rilasciate nel Marzo 2007<ref>[httphttps://www.khronos.org/news/press/releases/finalized_opengl_es_20_specification/ Khronos Group Prioritizes China’sChina's Participation in Creation of Key International Technology Standard - Khronos Group Press Release<!-- Titolo generato automaticamente -->] {{webarchive|url=https://web.archive.org/web/20101228111715/http://www.khronos.org/news/press/releases/finalized_opengl_es_20_specification/ |data=28 dicembre 2010 }}</ref>, 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 è [[retrocompatibilità|retrocompatibile]] con le versioni 1.0 e 1.1.
 
==== OpenGL ES 3.0 ====
Questa specifica è stato rilasciata pubblicamente nel mese di agosto 2012 ed è compatibile con OpenGL ES 2.0.
 
Line 44 ⟶ 42:
* 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====
La specifica OpenGL ES 3.1 è stata rilasciata al pubblico in marzo 2014. Le nuove funzionalità in OpenGL ES 3.1 include:
*shadersShaders 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à.
 
=== OpenGL ES 3.2 ===
La specifica OpenGL ES 3.2<ref>{{Cita web|titolo=The OpenGL ES 3.2 specification|url=https://www.khronos.org/registry/gles/#specs32}}</ref> è stata rilasciata pubblicamente nell'agosto del 2015.
Le nuove caratteristiche di OpenGL ES 3.2 includono:
* Shaders di geometria tassellamento per elaborare efficientemente scene complesse sulla GPU.
* Target di rendering in virgola mobile per aumentare la flessibilità nelle operazioni di calcolo in alta precisione.
* [[Adaptive Scalable Texture Compression|Compressione ASTC]] per ridurre l'uso della memoria e la banda usata per elaborare le texture.
* Blending avanzato per una gestione sofisticata di composizione e gestione di allegati di colore multipli.
* Obiettivi di texture avanzati come i buffer di texture, array multicampionamento 2D e array di mappe cubiche.
* Funzioni di debug e controllo robustezza per facilitare lo sviluppo del codice e l'esecuzione sicura.
 
Lo stato attuale della specifica 3.2 è del novembre 2016<ref>https://www.khronos.org/registry/OpenGL/specs/es/3.2/es_spec_3.2.pdf</ref>.
 
== Uso delle OpenGL ES ==
==== OpenGL ES 1.0 ====
 
* Sono le [[Application programming interface|API]] 3D ufficiali sia in [[Symbian OS]]<ref>[http://www.symbian.com/symbianos/releases/v95/productsheet.html ''Symbian OS v9.5 datasheet''] {{webarchive|url=https://web.archive.org/web/20080327234646/http://www.symbian.com/symbianos/releases/v95/productsheet.html |data=27 marzo 2008 }}, Symbian</ref> sia sulla [[Android|piattaforma Android]]<ref>[httphttps://developer.android.com/guide/basics/what-is-android.html ''Cos'è Android?''], Google</ref>
* Supportate dalla [[PlayStation 3]] come una delle API 3D ufficiali<ref>[httphttps://www.khronos.org/developers/library/siggraph2006/OpenGL_ES_BOF/OpenGL-ES-Demos.ppt Demo di OpenGL ES in formato PPT]</ref> (l'altra è la libreria a basso livello ''libgcm''). La PlayStation 3 include anche molte caratteristiche delle OpenGL ES 2.0.
 
==== OpenGL ES 1.1 ====
* Supportate da Android 1.6
* Supportate da [[iPhone]], [[iPod Touchtouch]] e [[iPad]]
* Supportate dalla serie 5.0 del sistema operativo BlackBerry<ref>{{Cita web |url=http://docs.blackberry.com/en/developers/deliverables/11953/New_in_this_beta_release_895185_11.jsp |titolo=New in this beta release |opera=Release Notes - BlackBerry Java Application |editore=[[Research in Motion]] |accesso=8 dicembre 2009 |urlmorto=sì |urlarchivio=https://web.archive.org/web/20091202054102/http://docs.blackberry.com/en/developers/deliverables/11953/New_in_this_beta_release_895185_11.jsp |dataarchivio=2 dicembre 2009 }}</ref>. Tuttavia, solo i [[BlackBerry Storm 2]], [[BlackBerry Curve 8530]] e successivi modelli hanno l'hardware necessario<ref>{{Cita news |titolo=What to expect for BlackBerry smartphones |nome=Damian |cognome=Koh |giornale=[[CNET Networks|CNET Asia]] |data=29 novembre 2009 |url=http://asia.cnet.com/reviews/mobilephones/0,39050603,62059292,00.htm |accesso=8 dicembre 2009 |urlmorto=sì |urlarchivio=https://web.archive.org/web/20091213042524/http://asia.cnet.com/reviews/mobilephones/0,39050603,62059292,00.htm |dataarchivio=13 dicembre 2009 }}</ref><br />[[BlackBerry PlayBook]]
* Supportate da Palm [[webOS]], usando il Plug-in Development Kit<ref name="developer.palm.com">[http://developer.palm.com/index.php?option=com_content&view=article&id=1989&Itemid=370#CoreTechnologies Developing PDK Apps and Plug-ins - HP webOS Developer Center<!-- Titolo generato automaticamente -->] {{webarchive|url=https://web.archive.org/web/20110101222701/http://developer.palm.com/index.php?option=com_content&view=article&id=1989&Itemid=370 |data=1º gennaio 2011 }}</ref>
 
==== OpenGL ES 2.0 ====
* Supportate da [[iPhone]] (3GS e successivi), [[iPod Touchtouch]] (terza serie e successivi) e [[iPad]]
* Supportate da Android dalla versione Android 2.2<ref>{{Cita news |titolo=Android 2.2 specifications |url=httphttps://developer.android.com/sdk/android-2.2.html |data=1º luglio 2010 |editore=Google |urlmorto=sì |urlarchivio=https://web.archive.org/web/20101011134355/http://developer.android.com/sdk/android-2.2.html |dataarchivio=11 ottobre 2010 }}</ref>
* Supportate dall'[[ Android]] NDK dalla versione 2.0<ref>{{Cita news |titolo=Android NDK hits Release 3, brings OpenGL ES 2.0 access to devs |url=httphttps://www.engadget.com/2010/03/08/android-ndk-hits-release-3-brings-opengl-es-2-0-access-to-devs/ |data=8 marzo 2010 |editore=Engadget }}</ref>
* Supportate dalla serie 7.0 del sistema operativo BlackBerry e [[BlackBerry PlayBook]]
* Libreria 3D della console [[Pandora (console)|Pandora]]
* Scelte per [[WebGL]] (OpenGL per browser)<ref>[http{{Cita web |url=https://www.khronos.org/news/press/releases/khronos-webgl-initiative-hardware-accelerated-3d-graphics-internet |titolo=Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet] |accesso=3 maggio 2019 |dataarchivio=19 aprile 2012 |urlarchivio=https://web.archive.org/web/20120419072738/http://www.khronos.org/news/press/releases/khronos-webgl-initiative-hardware-accelerated-3d-graphics-internet |urlmorto=sì }}</ref>
* Supportate da alcuni nuovi cellulari [[Nokia]] come il [[Nokia N900]] basato su [[Maemo]]<ref name=n900specs>{{Cita web|titolo=Maemo software - Nokia > Nokia N900 mobile computer > Technical specifications|url=http://maemo.nokia.com/n900/specifications/|editore=Nokia Corporation|accesso=12 gennaio 2010|urlmorto=sì|urlarchivio=https://web.archive.org/web/20091029005250/http://maemo.nokia.com/n900/specifications/|dataarchivio=29 ottobre 2009}}</ref> e il [[Nokia N8]] basato su [[Symbian OS|Symbian^3]].
* Supportate da vari cellulari [[Samsung]], compreso il [[Samsung GT-i9000 Galaxy S|Galaxy S]] e il [[Samsung S8500|Wave]]
* Supportate da Palm [[webOS]], con il Plug-in Development Kit<ref name="developer.palm.com"/>
* Supportate da AmigaOS4 su piattaforme AmigaOne X1000/X5000/1222, Sam440 e Sam460 tramite Warp3D Nova e schede grafiche RadeonHD e RX compatibili
 
==== OpenGL ES 3.0 ====
* Supportate da Android dalla versione 4.3<ref>[httphttps://developer.android.com/about/versions/android-4.3.html Android 4.3 APIs], Google, 24 luglio 2013.</ref>
* Supportate da iPhone 5S
 
==== OpenGL ES 3.1 ====
Supportato da Windows, Linux, Android (da Lollipop) sui dispositivi con hardware adeguato e driver, tra cui:
*Adreno serie 400 [26] [27]
Line 90 ⟶ 102:
*PowerVR Series 6, 6XE, 6XT, 7XE e 7XT (Linux, Android)
*Serie Vivante GC2000 in poi (optional con GC800 e GC1000)
 
=== OpenGL ES 3.2 ===
Supportate da Windows, Linux, Android (possibile dalla versione 6.0, dalla 7.0+ Vulkan 1.0 e OpenGL ES 3.2 sono necessari) su dispositivi con appropriato hardware e driver, inclusi:
* [[Adreno]] 420 e più recenti (Android, Linux)
* AMD GCN-architecture (Windows, Linux (Mesa 18.2))
* [[Intel]] HD Graphics Skylake e più recenti (Linux)<ref>https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.2.0</ref>
* Mali-T760 e più recenti (Android, Linux)
* Nvidia serie GeForce 400 (Fermi) e successive (Windows, Linux)<ref>{{Cita web|url=https://www.anandtech.com/show/9698/nvidia-releases-35850-game-ready-drivers-for-star-wars-battlefront |titolo=NVIDIA Releases 358.50 Game Ready Drivers For Star Wars Battlefront |editore=AnandTech |accesso=7 ottobre 2015}}</ref>
* VIRGL: driver virtuale per macchine virtuali nel 2018 con Mesa 18.1 (Vedere Mesamatrix.net)
 
== Note ==
{{<references|2}}/>
 
== Collegamenti esterni ==
* {{en}} [http://www.khronos.org/opengles/ Sito web di Khronos]
* {{en}} [http://www.khronos.org/bugzilla/ Bug tracking pubblico]
* {{en}} [http://www.khronos.org/members/conformant#opengles Costruttori conformi a OpenGL ES]
* {{en}} [http://www.khronos.org/message_boards/viewforum.php?f=19 Public forums]
* {{en}} [http://www.glbenchmark.com/result.jsp Lista di dispositivi compatibili OpenGL ES]
* {{en}} [https://wiki.mozilla.org/Canvas:3D The Firefox effort to support 3D based on OpenGL ES with the &lt;canvas&gt; tag]
* {{en}} [http://www.gremedy.com/gDEBuggerES.php gDEBugger ES - OpenGL ES Debugger and Profiler] including an OpenGL ES implementation on a Windows PC operating system
* {{en}} [http://www.malideveloper.com/ Free tools and resources for OpenGL ES development]
* {{en}} [http://www.malideveloper.com/tools/software-development/opengl-es-20-emulator.php Free emulator for OpenGL ES 2.0 for Windows and Linux]
 
== Altre lettureBibliografia ==
* Kari Pulli, Tomi Aarnio, Ville Miettinen, Kimmo Roimela, and Jani Vaarala: [https://web.archive.org/web/20190923023228/http://www.graphicsformasses.com/ ''Mobile 3D Graphics with OpenGL ES and M3G''], Morgan Kaufmann, 2007, ISBN 0-12-373727-3
* Dave Astle and David Durnil: ''OpenGL ES Game Development'', Course Technology PTR, ISBN 1-59200-370-2
* Kari Pulli, Tomi Aarnio, Kimmo Roimela, and Jani Vaarala [http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=32639&arnumber=1528436&count=14&index=10 ''Designing graphics programming interfaces for mobile devices''], IEEE CG&A 2005
* [[Aaftab Munshi]], Dan Ginsburg, Dave Shreiner : OpenGL(R) ES 2.0 Programming Guide, Addison-Wesley Professional, ISBN 978-0-321-50279-7
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{en}}cita [httpweb|https://www.khronos.org/bugzilla/ |Bug tracking pubblico]|lingua=en}}
* {{en}}cita [httpweb|https://www.khronos.org/members/conformant#opengles |Costruttori conformi a OpenGL ES]|lingua=en}}
* {{cita web|url=https://www.khronos.org/message_boards/viewforum.php?f=19|titolo=Public forums|lingua=en|accesso=3 maggio 2019|urlarchivio=https://web.archive.org/web/20150323111145/https://www.khronos.org/message_boards/viewforum.php?f=19|dataarchivio=23 marzo 2015|urlmorto=sì}}
* {{en}}cita [web|http://www.glbenchmark.com/result.jsp |Lista di dispositivi compatibili OpenGL ES]|lingua=en}}
* {{en}}cita [web|https://wiki.mozilla.org/Canvas:3D |The Firefox effort to support 3D based on OpenGL ES with the &lt;canvas&gt; tag]|lingua=en}}
* {{en}} [https://web.archive.org/web/20100131041259/http://www.gremedy.com/gDEBuggerES.php gDEBugger ES - OpenGL ES Debugger and Profiler] including an OpenGL ES implementation on a Windows PC operating system
* {{cita web|1=http://www.malideveloper.com/|2=Free tools and resources for OpenGL ES development|lingua=en|accesso=5 novembre 2010|dataarchivio=9 agosto 2019|urlarchivio=https://web.archive.org/web/20190809004540/http://www.malideveloper.com/|urlmorto=sì}}
* {{cita web|1=http://www.malideveloper.com/tools/software-development/opengl-es-20-emulator.php|2=Free emulator for OpenGL ES 2.0 for Windows and Linux|lingua=en|accesso=5 novembre 2010|urlarchivio=https://web.archive.org/web/20100309001912/http://www.malideveloper.com/tools/software-development/opengl-es-20-emulator.php|dataarchivio=9 marzo 2010|urlmorto=sì}}
 
{{portale|software libero}}