OpenGL ES
OpenGL ES software | |
---|---|
Tip | Bibliotecă software (nu este listată ) Grafică pe computer |
Dezvoltator | Grupul Khronos |
Data primei versiuni | 28 iulie 2003 |
Ultima versiune | 3.2 (17 martie 2014 ) |
Sistem de operare | Multiplatform |
Licență | Variat ( licență gratuită ) |
Site-ul web | www.khronos.org/opengles/ |
OpenGL ES este un subset de biblioteci grafice OpenGL concepute pentru dispozitive integrate (telefoane mobile, PDA-uri etc. , dar și instrumente științifice și industriale). Este administrat de consorțiul non-profit Khronos Group , care se ocupă și de dezvoltarea bibliotecii părinte OpenGL.
Versiuni
În prezent, există multe versiuni diferite ale specificației OpenGL ES. Versiunea 1.0 se bazează pe OpenGL versiunea 1.3, în timp ce versiunea 1.1 se bazează pe OpenGL 1.5 și 2.0 este definită în raport cu OpenGL 2.0. Ambele versiuni 1.0 și 1.1 acceptă două profiluri, common și common-lite ; profilul lite acceptă doar tipuri de date întregi în loc de date normale în virgulă mobilă , în timp ce profilul comun acceptă ambele.
OpenGL ES oferă, de asemenea, un alt profil critic de siguranță conceput pentru sisteme critice și / sau de înaltă securitate, cum ar fi afișajele avionice, instrumentarea aeronavei și aplicațiile militare: principalele caracteristici ale acestui profil sunt stabilitatea, testabilitatea și robustețea intrinsecă.
OpenGL ES 1.0
Conține multe caracteristici ale OpenGL original și adaugă unele dintre ele. Cele două diferențe principale sunt eliminarea semanticului glBegin
... glEnd
pentru redarea primitivelor (în favoarea matricelor de vârfuri) și introducerea datelor punctului fix pentru coordonatele vârfurilor primitivelor și atributelor, pentru a exploata mai bine capacitățile de calcul de procesoare încorporate care adesea nu au FPU . Celelalte diferențe sunt numeroase, dar minore, aproape toate simplificările pentru a produce o interfață mai simplă și mai esențială. Primitivele de redare a pătratelor și poligoanelor, textilelor, modul poligonal, liniilor punctate și poligoanelor, redarea poligoanelor antialiasate (cu fragmente de margine alfa, nu multisamplate), funcțiile ARB_Image
pe clase de pixeli, bitmap-urile au fost eliminate, texturi 3D , desen frontbuffer, tampon de acumulare, copiere pixel, push / pop a atributelor de stare, liste de afișare, evaluatori, selecții, feedback-uri, iluminare față-verso și decupare definită de utilizator.
OpenGL ES 1.1
Acesta adaugă caracteristicile de asistență obligatorii multitexturării, normale și îmbunătățite (cu combinații și operații scalare ale produsului între texturi), generarea automată de mipmaps , obiecte tampon vertex, interogări de stare și, în general, un control mai mare asupra redării punctelor. Sunt introduse planurile de tăiere a utilizatorilor.
OpenGL ES 2.0
Au fost lansate în martie 2007 [1] și elimină cea mai mare parte a conductei de redare a funcțiilor fixe în favoarea uneia programabile: aproape toate funcțiile de redare ale conductei de transformare și iluminare, cum ar fi setarea parametrilor luminilor și materialelor, ele sunt înlocuite de umbrere de vârf și umbrere de pixeli programate separat. Ca atare, OpenGL ES 2.0 nu este compatibil cu versiunile 1.0 și 1.1.
OpenGL ES 3.0
Această specificație a fost publicată public în august 2012 și este compatibilă cu OpenGL ES 2.0.
Funcții noi în ES OpenGL 3.0:
- Mai multe îmbunătățiri ale conductei de redare pentru a permite accelerarea efectelor vizuale avansate, inclusiv: interogări de ocluzie, feedback de transformare, instanțe de redare și suport pentru patru sau mai multe ținte de redare
- Compresie textură ETC2 / EAC de înaltă calitate ca o caracteristică standard, eliminând necesitatea unui set diferit de texturi pentru fiecare platformă
- Noua versiune a limbajului de umbrire GLSL ES cu suport complet pentru operații în virgulă interioară și pe 32 de biți;
- Funcționalitate de texturare foarte îmbunătățită, inclusiv suport garantat pentru texturi în virgulă mobilă, texturi 3D, texturi, texturi cu adâncime de vârf, texturi NPOT, texturi R / RG, texturi, texturi imutabile cu matrice 2D, swizzles, LOD-uri și cleme MIP, hărți cubice fără sudură și obiecte sampler
- Un set vast de solicitări, structura solicită în mod explicit dimensiunile și formatele bufferului de redare, reducând variabilitatea și facilitând scrierea aplicațiilor portabile.
OpenGL ES 3.1
Specificația OpenGL ES 3.1 a fost lansată publicului în martie 2014. Noile caracteristici din OpenGL ES 3.1 includ:
- Calculează Shaders
- Vertice și umbrere de fragmente independente
- Comenzi de desen indirect
OpenGL ES 3.1 este compatibil cu OpenGL ES 2.0 și 3.0, permițând aplicațiilor să se integreze treptat cu noi caracteristici.
OpenGL ES 3.2
Specificația OpenGL ES 3.2 [2] a fost lansată public în august 2015. Noile funcții din OpenGL ES 3.2 includ:
- Umbrele geometriei de teselare pentru a procesa eficient scene complexe pe GPU.
- Țintă de redare în virgulă mobilă pentru a crește flexibilitatea în operațiile de calcul de înaltă precizie.
- Compresie ASTC pentru a reduce utilizarea memoriei și lățimea de bandă utilizată pentru procesarea texturilor.
- Amestec avansat pentru gestionarea sofisticată a compoziției și gestionarea atașamentelor multiple de culoare.
- Ținte de text avansate, cum ar fi tampoane de textură, matrice 2D multisamplate și matrice de hărți cub.
- Funcții de verificare și depanare a robusteții pentru a facilita dezvoltarea codului și executarea sigură.
Starea actuală a specificației 3.2 este din noiembrie 2016 [3] .
Utilizarea OpenGL ES
OpenGL ES 1.0
- Acestea sunt API-urile 3D oficiale atât în Symbian OS [4], cât și pe platforma Android [5]
- Suportat de PlayStation 3 ca una dintre API-urile 3D oficiale [6] (cealaltă este biblioteca libgcm de nivel scăzut ). PlayStation 3 include, de asemenea, multe caracteristici ale OpenGL ES 2.0.
OpenGL ES 1.1
- Suportat de Android 1.6
- Suportat de iPhone , iPod touch și iPad
- Suportat de seria 5.0 a sistemului de operare BlackBerry [7] . Cu toate acestea, numai BlackBerry Storm 2 , BlackBerry Curve 8530 și modelele ulterioare au hardware-ul necesar [8]
BlackBerry PlayBook - Suportat de Palm webOS , utilizând setul de dezvoltare plug-in [9]
OpenGL ES 2.0
- Suportat de iPhone (3GS și versiuni ulterioare), iPod touch (a treia serie și versiuni ulterioare) și iPad
- Suportat de Android din versiunea Android 2.2 [10]
- Suportat de Android NDK de la versiunea 2.0 [11]
- Suportat de seria 7.0 a sistemului de operare BlackBerry și BlackBerry PlayBook
- Biblioteca 3D a consolei Pandora
- Opțiuni pentru WebGL (OpenGL pentru browser) [12]
- Suportat de unele noi telefoane Nokia, cum ar fi Nokia N900 bazat pe Maemo [13] și Nokia N8 bazat pe Symbian ^ 3 .
- Suportat de diverse telefoane Samsung , inclusiv Galaxy S și Wave
- Suportat de Palm webOS , cu kitul de dezvoltare plug-in [9]
OpenGL ES 3.0
- Suportat de Android de la versiunea 4.3 [14]
- Suportat de iPhone 5S
OpenGL ES 3.1
Suportat de Windows, Linux, Android (de Lollipop) pe dispozitive cu hardware și drivere adecvate, inclusiv:
- Seria Adreno 400 [26] [27]
- Grafică Intel HD pentru seria Intel Atom Z3700 (Android)
- Grafică Intel HD pentru Seriile Intel Celeron N și J (Android)
- Grafică Intel HD pentru Seriile Intel Pentium N și J (Android)
- Seria Mali T6xx (Midgard) în continuare [28] (Android, Linux)
- Seria Nvidia GeForce 400 în continuare (Windows)
- Nvidia Tegra K1 (Android)
- Nvidia Tegra X1 (Android)
- PowerVR Seria 6, 6XE, 6XT, 7XE și 7XT (Linux, Android)
- Seria Vivante GC2000 în continuare (opțional cu GC800 și GC1000)
OpenGL ES 3.2
Suportat de Windows, Linux, Android (posibil de la versiunea 6.0, 7.0+ Vulkan 1.0 și OpenGL ES 3.2 sunt necesare) pe dispozitive cu hardware și drivere adecvate, inclusiv:
- Adreno 420 și mai nou (Android, Linux)
- Arhitectură AMD GCN (Windows, Linux (Mesa 18.2))
- Intel HD Graphics Skylake și mai nou (Linux) [15]
- Mali-T760 și mai nou (Android, Linux)
- Seria Nvidia GeForce 400 (Fermi) și mai târziu (Windows, Linux) [16]
- VIRGL: driver virtual pentru mașini virtuale în 2018 cu Mesa 18.1 (Vezi Mesamatrix.net)
Notă
- ^ Khronos Group acordă prioritate participării Chinei la crearea standardului tehnologic internațional cheie - Comunicat de presă Khronos Group Arhivat 28 decembrie 2010 la Internet Archive .
- ^ Specificația OpenGL ES 3.2 , la khronos.org .
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/es_spec_3.2.pdf
- ^ Foaie de date Symbian OS v9.5 Arhivat 27 martie 2008 la Internet Archive ., Symbian
- ^ Ce este Android? , Google
- ^ Demo OpenGL ES în format PPT
- ^ Nou în această versiune beta , în Note de lansare - BlackBerry Java Application , Research in Motion . Adus la 8 decembrie 2009 (arhivat din original la 2 decembrie 2009) .
- ^ Damian Koh, Ce să ne așteptăm pentru smartphone-urile BlackBerry , CNET Asia , 29 noiembrie 2009. Accesat la 8 decembrie 2009 (arhivat din original la 13 decembrie 2009) .
- ^ a b Dezvoltarea aplicațiilor și pluginurilor PDK - HP webOS Developer Center Arhivat 1 ianuarie 2011 la Internet Archive .
- ^ Specificații Android 2.2 , Google, 1 iulie 2010 (arhivat din original la 11 octombrie 2010) .
- ^ Android NDK a lansat versiunea 3, aduce acces OpenGL ES 2.0 la dev , Engadget, 8 martie 2010.
- ^ Khronos Detalii Inițiativa WebGL pentru a aduce grafică 3D accelerată hardware pe internet Arhivat 12 aprilie 2012 în WebCite .
- ^ Software Maemo - Nokia> Computer mobil Nokia N900> Specificații tehnice , la maemo.nokia.com , Nokia Corporation. Adus la 12 ianuarie 2010 (arhivat din original la 29 octombrie 2009) .
- ^ API-uri Android 4.3 , Google, 24 iulie 2013.
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.2.0
- ^ NVIDIA lansează 358.50 Drivere gata de joc pentru Star Wars Battlefront , la anandtech.com , AnandTech. Adus pe 7 octombrie 2015 .
linkuri externe
- (EN) Site-ul Khronos pe khronos.org.
- (EN) Public de urmărire a erorilor pe khronos.org.
- (EN) producătorii respectă OpenGL ES pe khronos.org.
- ( EN ) Forumuri publice , la khronos.org . Adus la 3 mai 2019 (Arhivat din original la 23 martie 2015) .
- ( RO ) Lista dispozitivelor compatibile OpenGL ES , la glbenchmark.com .
- ( EN ) Efortul Firefox de a sprijini 3D bazat pe OpenGL ES cu eticheta <canvas> , la wiki.mozilla.org .
- ( EN ) gDEBugger ES - OpenGL ES Debugger și Profiler incluzând o implementare OpenGL ES pe un sistem de operare Windows PC
- ( RO ) Instrumente și resurse gratuite pentru dezvoltarea OpenGL ES , la malideveloper.com .
- ( EN ) Emulator gratuit pentru OpenGL ES 2.0 pentru Windows și Linux , la malideveloper.com . Adus la 5 noiembrie 2010 (arhivat din original la 9 martie 2010) .
Alte lecturi
- Kari Pulli, Tomi Aarnio, Ville Miettinen, Kimmo Roimela și Jani Vaarala: Grafică 3D mobilă cu OpenGL ES și M3G , Morgan Kaufmann, 2007, ISBN 0-12-373727-3
- Dave Astle și David Durnil: OpenGL ES Game Development , Course Technology PTR, ISBN 1-59200-370-2
- Kari Pulli, Tomi Aarnio, Kimmo Roimela și Jani Vaarala Proiectarea interfețelor de programare grafică pentru dispozitive mobile , 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