OpenGL ES

OpenGL ES

informație
Dezvoltat de Grupul Khronos
Prima versiune 28 iulie 2003
Ultima versiune 3.2 (10 august 2015)
Mediu inconjurator Multiplatform
Tip Interfață de programare
Site-ul web www.khronos.org/opengles

OpenGL ES ( Open G raphics The ibrary for E mBedded S ystem , uneori prescurtat ca Ogles sau GLES ) este o specificație a grupului Khronos care definește o API multiplataforma pentru scrierea aplicațiilor specificații derivate 3D OpenGL , într-o formă potrivită pentru mobil sau platforme de la bord, cum ar fi telefoane mobile , asistenți personali (PDA), console portabile de jocuri video, playere media de buzunar sau cameră de zi ... Consola de jocuri video PlayStation 3 folosește și un derivat al OpenGL ES numit PSGL .

Implicații

OpenGL ES este în primul rând o simplificare a OpenGL, cu două obiective: un API mai slab în ceea ce privește memoria și costul procesorului și o simplificare suplimentară.

Mai ușoare, deoarece aceste platforme nu sunt în general foarte puternice și nu sunt prea mult furnizate în RAM. Prin urmare, multe caracteristici au fost abandonate. Unele extensii au fost integrate sau chiar adăugate la profilul implicit, deoarece sunt esențiale în aceste medii, altele au fost păstrate, majoritatea fiind eliminate. Calculele sunt efectuate, de preferință, într-un punct fix , deoarece procesoarele în cauză au rareori o capacitate de calcul în virgulă mobilă .

Aceasta este o simplificare semnificativă în ceea ce privește specificitățile platformelor, care facilitează munca dezvoltatorilor. Într-adevăr, un dezvoltator 3D clasic trebuie să gestioneze una sau două console și / sau un set de plăci grafice de la doi sau trei producători principali. Un programator de platforme încorporate trebuie să se adreseze sutelor de telefoane mobile diferite, pentru o duzină de mărci, care rulează sub trei sau patru sisteme de operare ( Windows Mobile , Symbian , Android , Brew , Linux , WIPI ...), cu plăci grafice de la cei trei furnizori principali ( ATI , NVidia , Imagination Technologies ) și ecrane cu rezoluții foarte diferite, în orientare portret sau peisaj. Prin urmare, este necesar ca acesta să își poată specifica nevoile și apoi să permită OpenGL ES să facă alegeri interne, la fel cum este important ca software-ul sau redarea accelerată să fie controlate în același mod.

Unele browsere recente permit, datorită WebGL și JavaScript , să afișeze conținut 3D în mod nativ în OpenGL ES. Acest lucru deschide perspective pentru dezvoltarea de jocuri online 3D.

Standarde diferite

OpenGL ES a trecut prin patru revizuiri principale:

A fost planificat un standard 1.2, dar nu a fost niciodată publicat.

Există , de asemenea , OpenGL ES-SC 1.0 ( OpenGL ES pentru S Instru C aplicație ritical), pentru alte aplicații tolerante non-defecte militare, aviația civilă sau. Eliminarea caracteristicilor îl face mai ușor și mai sigur.

Specificația OpenGL ES nu beneficiază în prezent de un mecanism de certificare hardware. Prin urmare, orice produs poate pretinde că este compatibil OpenGL ES fără a fi verificat gradul său de conformitate cu standardul. Cu toate acestea, implementările trebuie să fie supuse unei serii de teste pentru a fi declarate conforme; de fapt, puțini încearcă să o treacă.

Vulkan

Pe 7 ianuarie 2014, Khronos Group a anunțat inițial Vulkan drept OpenGL ES Next OpenGL ES Next este echivalentul OpenGL Next pentru seria încorporată. Reia progresele Gallium3D în implementarea gratuită Mesa 3D a OpenGL, care a demonstrat cu Gallium3D , și în special LLVMpipe , că a fost posibil să existe performanțe relativ corecte cu o redare 3D numai software, cu condiția ca „utilizarea mai inteligentă a diferite resurse disponibile (nuclee etc.), aceste progrese au făcut posibilă și reducerea utilizării procesorului atunci când accelerarea hardware a fost prezentă. Aceste progrese au inspirat mai întâi crearea Mantle_ (API)  (en) la AMD , apoi modificări la Microsoft cu Direct3D 12 și din nou Khronos cu OpenGL Next. În toate aceste cazuri, API-ul este revizuit și erorile de proiectare ale versiunilor anterioare, inadecvate pentru progresele tehnice și tehnologice ale hardware-ului, sunt eliminate din specificații.

În cele din urmă, Vulkan unifică atât versiunea OpenGL ES încorporată, cât și versiunea OpenGL pentru desktop.

Implementarea software-ului

Suport material

Există mai multe procesoare grafice care au drivere OpenGL ES.

Probleme

O problemă neașteptată este adesea observată în timpul dezvoltării. Deoarece platformele mobile au adesea un ciclu de viață foarte scurt, piloții sunt deseori redactați rapid și implementările sunt adesea slabe, lăsând lateral majoritatea extensiilor (cum ar fi mesh ( skinning ) , cartografierea cubului de mediu sau unele extensii proprietare, cum ar fi compresia texturii PVRTC a MBX ), dar și uneori unele funcții standard prea complexe, cum ar fi Vertex Buffer Objects.

Multe aplicații sunt dezvoltate pentru OpenGL, care are un set de instrucțiuni mai mare. Există câteva încercări de a rula aplicații OpenGL pe OpenGL ES:

linkuri externe


Note și referințe

  1. "  https://www.khronos.org/news/press/khronos-expands-scope-of-3d-open-standard-ecosystem  "
  2. 2012 SIGGRAPH OpenGL ES BOF
  3. (în) OpenGL ES FRO Siggraph (prezentarea PDF a noului OpenGL ES 3.0)
  4. (în) „  Specificații OpenGL ES 3.1  ” , khronos.org,4 iunie 2014(accesat pe 29 octombrie 2014 )
  5. (în) „  OpenGL ES Next  ” ,7 ianuarie 2014(accesat la 8 ianuarie 2014 )
  6. (ro) Ryan Smith, „  Următoarea generație OpenGL devine Vulkan: Detalii suplimentare lansate  ” , Anandtech ,3 martie 2015
  7. (ro) https://developer.android.com/about/versions/android-2.2.html
  8. David Legrand, „  În timpul conferinței sale de a anunța noul Nexus 7, Google a profitat de ocazie pentru a începe să vorbească despre ...  ” , pe pcinpact.com , Next INpact ,24 iulie 2013(accesat la 23 august 2020 ) .
  9. „  Vivante Graphics Processor IP  ” (accesat la 5 august 2012 )
  10. OpenGL ES 3.0 emulator