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 .
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.
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.
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.
Es gibt mehrere Grafikprozessoren mit OpenGL ES-Treibern.
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: