OpenGL ES

OpenGL ES

Information
Entwickelt von Khronos Group
Erste Version 28. Juli 2003
Letzte Version 3,2 (10. August 2015)
Umgebung Multiplattform
Art Programmierschnittstelle
Webseite www.khronos.org/opengles

OpenGL ES ( Öffnen G raphics Die ibrary für E mBedded S ystem, manchmal abgekürzt Ogles oder GLES ) ist eine Spezifikation von dem Khronos Group , die eine definiert API plattformübergreifend für das Schreiben von Anwendungen Bilder 3D abgeleitete Spezifikation OpenGL , in einer Form , die geeignet für mobile oder On-Board-Plattformen wie Mobiltelefone , persönliche Assistenten (PDA), tragbare Videospielkonsolen , Taschen- oder Wohnzimmer-Mediaplayer ... Die PlayStation 3- Videospielkonsole verwendet auch ein Derivat von OpenGL ES mit dem Namen PSGL .

Implikationen

OpenGL ES ist in erster Linie eine Vereinfachung von OpenGL mit zwei Zielen: einer schlankeren API in Bezug auf Speicher- und Prozessorkosten und einer weiteren Vereinfachung.

Leichter, weil diese Plattformen im Allgemeinen nicht sehr leistungsfähig sind und nicht sehr viel im RAM bereitgestellt werden. Viele Funktionen wurden daher aufgegeben. Einige Erweiterungen wurden in die integriert oder sogar hinzugefügt Standard - Profil , weil sie in diesen Umgebungen wesentlich sind, andere haben gehalten worden, die meisten von ihnen beseitigt werden. Die Berechnungen werden vorzugsweise an einem festen Punkt durchgeführt , da die betroffenen Prozessoren nur selten über eine Gleitkommaberechnungskapazität verfügen .

Dies ist eine erhebliche Vereinfachung in Bezug auf die Besonderheiten der Plattformen, die die Arbeit der Entwickler erleichtert. In der Tat muss ein klassischer 3D-Entwickler eine oder zwei Konsolen und / oder einen Satz Grafikkarten von zwei oder drei Hauptherstellern verwalten. Ein Programmierer eingebetteter Plattformen muss Hunderte verschiedener Handys für ein Dutzend Marken ansprechen, die unter drei oder vier Betriebssystemen ( Windows Mobile , Symbian , Android , Brew , Linux , WIPI ...) mit Grafikkarten der drei Hauptanbieter ausgeführt werden ( ATI , NVidia , Imagination Technologies ) und Bildschirme mit sehr unterschiedlichen Auflösungen im Hoch- oder Querformat . Es ist daher erforderlich, dass es in der Lage ist, seine Anforderungen zu spezifizieren und dann OpenGL ES die internen Entscheidungen treffen zu lassen, ebenso wie es wichtig ist, dass die Software oder das beschleunigte Rendern auf die gleiche Weise gesteuert werden.

Einige neuere Browser ermöglichen dank WebGL und JavaScript die native Anzeige von 3D-Inhalten in OpenGL ES. Dies eröffnet Perspektiven für die Entwicklung von Online-3D-Spielen.

Unterschiedliche Standards

OpenGL ES hat vier Hauptrevisionen durchlaufen:

Ein 1.2-Standard war geplant, wurde aber nie veröffentlicht.

Es gibt auch OpenGL ES-SC 1.0 ( OpenGL ES für S icherheit C ritische Anwendung), für militärische, zivile Luftfahrt oder anderen nicht-fehlertolerante Anwendungen. Durch das Entfernen von Funktionen wird es leichter und sicherer.

Die OpenGL ES-Spezifikation profitiert derzeit nicht von einem Hardware-Zertifizierungsmechanismus. Jedes Produkt kann daher behaupten, OpenGL ES-kompatibel zu sein, ohne die Übereinstimmung mit dem Standard überprüft zu haben. Implementierungen müssen jedoch einer Reihe von Tests unterzogen werden, um für konform erklärt zu werden. Tatsächlich versuchen nur wenige, es zu bestehen.

Vulkan

Am 7. Januar 2014 kündigte die Khronos-Gruppe Vulkan zunächst als OpenGL ES Next an. OpenGL ES Next entspricht OpenGL Next für die eingebettete Serie. Es greift die Fortschritte von Gallium3D bei der kostenlosen Mesa 3D- Implementierung von OpenGL auf, die mit Gallium3D und insbesondere LLVMpipe demonstrierte , dass es möglich war, mit einem 3D-Rendering nur mit Software eine relativ korrekte Leistung zu erzielen, vorausgesetzt, die Verwendung von Aufgrund der unterschiedlichen verfügbaren Ressourcen (Kerne usw.) reduzierten diese Verbesserungen auch die CPU-Auslastung, wenn eine Hardwarebeschleunigung vorhanden war. Diese Fortschritte inspirierten zuerst die Erstellung von Mantle_ (API)  (en) bei AMD , dann Änderungen bei Microsoft mit Direct3D 12 und erneut Khronos mit OpenGL Next. In all diesen Fällen wird die API überarbeitet und die Konstruktionsfehler früherer Versionen, die nicht für technische und technologische Fortschritte in der Hardware geeignet sind, werden aus den Spezifikationen entfernt.

Letztendlich vereint Vulkan sowohl die eingebettete OpenGL ES- als auch die Desktop-OpenGL-Version.

Software-Implementierung

Materialunterstützung

Es gibt mehrere Grafikprozessoren mit OpenGL ES-Treibern.

Probleme

Während der Entwicklung wird häufig ein unerwartetes Problem beobachtet. Da mobile Plattformen häufig einen sehr kurzen Lebenszyklus haben, werden Piloten häufig schnell geschrieben und die Implementierungen sind oft schlecht. Die meisten Erweiterungen (wie Mesh ( Skinning ) , Umgebungswürfelzuordnung oder einige proprietäre Erweiterungen wie die PVRTC- Texturkomprimierung des MBX bleiben auf der Seite ), aber manchmal auch einige zu komplexe Standardfunktionen, wie z. B. Vertex Buffer Objects.

Viele Anwendungen wurden für OpenGL entwickelt, das über einen größeren Befehlssatz verfügt. Es gibt einige Versuche, OpenGL-Anwendungen auf OpenGL ES auszuführen:

Externe Links


Anmerkungen und Referenzen

  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-Präsentation des neuen OpenGL ES 3.0)
  4. (in) "  OpenGL ES 3.1-Spezifikationen  " , khronos.org,4. Juni 2014(abgerufen am 29. Oktober 2014 )
  5. (in) "  OpenGL ES Next  " ,7. Januar 2014(abgerufen am 8. Januar 2014 )
  6. (en) Ryan Smith, „  OpenGL der nächsten Generation wird Vulkan: Zusätzliche Details veröffentlicht  “ , Anandtech ,3. März 2015
  7. (de) https://developer.android.com/about/versions/android-2.2.html
  8. David Legrand, "  Während seiner Konferenz zur Ankündigung des neuen Nexus 7 nutzte Google die Gelegenheit, um über ... zu sprechen  " , auf pcinpact.com , Next INpact ,24. Juli 2013(Zugriff auf den 23. August 2020 ) .
  9. Vivante Graphics Processor IP  " (abgerufen am 5. August 2012 )
  10. OpenGL ES 3.0 Emulator