OpenGL ES

OpenGL ES

Informasjon
Utviklet av Khronos Group
Første versjon 28. juli 2003
Siste versjon 3,2 (10. august 2015)
Miljø Multiplatform
Type Programmeringsgrensesnitt
Nettsted www.khronos.org/opengles

OpenGL ES ( Open G raphics The ibrary for E mBedded S ystem , noen ganger forkortet som Ogles eller GLES ) er en spesifikasjon fra Khronos Group som definerer en API -plattform for å skrive applikasjoner bilder 3D- avledet spesifikasjon OpenGL , i en form som er egnet for mobil eller innebygde plattformer som mobiltelefoner , personlige assistenter (PDA), bærbare videospillkonsoller , mediaspillere til lommer eller stuer ... PlayStation 3 -spillkonsollen bruker også et derivat av OpenGL ES som heter PSGL .

Implikasjoner

OpenGL ES er primært en forenkling av OpenGL, med to mål: en slankere API når det gjelder minne og prosessorkostnader, og ytterligere forenkling.

Lettere, fordi disse plattformene generelt ikke er veldig kraftige og ikke veldig mye i RAM. Mange funksjoner er derfor forlatt. Noen utvidelser har blitt integrert eller lagt til standardprofilen fordi de er avgjørende i disse miljøene, andre har blitt holdt, de fleste av dem blir eliminert. Beregningene utføres fortrinnsvis i et fast punkt , fordi prosessorene det gjelder bare sjelden har en flytende beregningskapasitet .

Dette er en betydelig forenkling når det gjelder spesifikasjonene til plattformene, noe som letter utvikleres arbeid. En klassisk 3D-utvikler må faktisk administrere en eller to konsoller og / eller et sett med grafikkort fra to eller tre hovedprodusenter. En programmerer av innebygde plattformer må adressere hundrevis av forskjellige mobiltelefoner, for et dusin merker, som kjører under tre eller fire operativsystemer ( Windows Mobile , Symbian , Android , Brew , Linux , WIPI ...), med grafikkort fra de tre hovedleverandørene ( ATI , NVidia , Imagination Technologies ) og skjermer med veldig forskjellige oppløsninger, i stående eller liggende retning. Det er derfor nødvendig for den å kunne spesifisere behovene og la OpenGL ES ta de interne valgene, akkurat som det er viktig at programvaren eller akselerert gjengivelse kontrolleres på samme måte.

Noen nyere nettlesere tillater, takket være WebGL og JavaScript , å vise 3D-innhold naturlig i OpenGL ES. Dette åpner utsikter for utvikling av online 3D-spill.

Ulike standarder

OpenGL ES har gått gjennom fire hovedrevisjoner:

En 1.2-standard var planlagt, men ble aldri publisert.

Det er også Åpen ES-SC 1,0 ( OpenGL ES for S ikkerhets C ritical søknad), for militære, sivil luftfart eller andre ikke-feiltolerant anvendelser. En fjerning av funksjoner gjør det lettere og tryggere.

OpenGL ES-spesifikasjonen har foreløpig ikke fordel av en maskinvaresertifiseringsmekanisme. Ethvert produkt kan derfor hevde å være OpenGL ES-kompatibelt uten å ha bekreftet graden av samsvar med standarden. Implementeringene må imidlertid gjennomgå en serie tester for å bli erklært kompatible. faktisk er det få som prøver å passere det.

Vulkan

7. januar 2014 kunngjorde Khronos Group opprinnelig Vulkan som OpenGL ES Next OpenGL ES Next tilsvarer OpenGL Next for den innebygde serien. Det tar opp fremdriften til Gallium3D i den gratis Mesa 3D- implementeringen av OpenGL, som demonstrerte med Gallium3D , og spesielt LLVMpipe , at det var mulig å ha relativt riktig ytelse med en programvarebasert 3D-gjengivelse, forutsatt at "smartere bruk av forskjellige tilgjengelige ressurser (kjerner osv.), gjorde disse fremskrittene det også mulig å redusere CPU-bruken når maskinvareakselerasjon var til stede. Disse fremskrittene inspirerte først til etableringen av Mantle_ (API)  (en) hos AMD , deretter modifikasjoner hos Microsoft med Direct3D 12 og igjen Khronos med OpenGL Next. I alle disse tilfellene blir API-en overhalet og designfeilene fra tidligere versjoner, som ikke er egnet for tekniske og teknologiske fremskritt innen maskinvaren, er eliminert fra spesifikasjonene.

Til slutt forener Vulkan både den innebygde OpenGL ES og OpenGL-versjonen på skrivebordet.

Programvareimplementering

Materiell støtte

Det er flere grafikkprosessorer som har OpenGL ES-drivere.

Problemer

Et uventet problem blir ofte observert under utviklingen. Som mobile plattformer ofte har en svært kort levetid, er pilotene ofte skrevet raskt og implementeringer er ofte dårlig, siden forlater de fleste utvidelser (som mesh ( skinning ) , det miljøet kube kartlegging eller noen proprietære utvidelser som PVRTC tekstur komprimering av MBX ), men også noen ganger altfor komplekse standardfunksjoner, for eksempel Vertex Buffer Objects.

Mange applikasjoner er utviklet for OpenGL, som har et større instruksjonssett. Det er noen forsøk på å kjøre OpenGL-applikasjoner på OpenGL ES:

Eksterne linker


Merknader og referanser

  1. "  https://www.khronos.org/news/press/khronos-expands-scope-of-3d-open-standard-ecosystem  "
  2. 2012 SIGGRAPH OpenGL ES BOF
  3. (in) OpenGL ES FRO Siggraph (PDF-presentasjon av nye OpenGL ES 3.0)
  4. (in) "  OpenGL ES 3.1 spesifikasjoner  " , khronos.org,4. juni 2014(åpnet 29. oktober 2014 )
  5. (in) "  OpenGL ES Next  " ,7. januar 2014(åpnet 8. januar 2014 )
  6. (no) Ryan Smith, “  Next Generation OpenGL Becomes Vulkan: Additional Details Released  ” , Anandtech ,3. mars 2015
  7. (no) https://developer.android.com/about/versions/android-2.2.html
  8. David Legrand, "  Under konferansen for å kunngjøre den nye Nexus 7 benyttet Google anledningen til å begynne å snakke om ...  " , på pcinpact.com , Next INpact ,24. juli 2013(åpnet 23. august 2020 ) .
  9. Vivante Graphics Processor IP  " (åpnet 5. august 2012 )
  10. OpenGL ES 3.0 emulator