OpenGL ES - OpenGL ES

OpenGL ES
OpenGL ES-Logo
Logo
Originalautor(en) ARB
Entwickler Chronos-Gruppe
Erstveröffentlichung 28. Juli 2003 ; Vor 18 Jahren ( 2003-07-28 )
Stabile Version
3.2 / 10. August 2015 ; vor 6 Jahren ( 2015-08-10 )
Betriebssystem Plattformübergreifend
Plattform Plattformübergreifend
Typ API
Lizenz Kostenlos, lizenzgebührenfrei oder lizenzfrei
Webseite www .khronos .org / OpenGLES

OpenGL für eingebettete Systeme ( OpenGL ES oder GLES ) ist eine Teilmenge der OpenGL Computer Graphics Rendering Application Programming Interface (API) zum Rendern von 2D- und 3D-Computergrafiken, wie sie von Videospielen verwendet werden , typischerweise hardwarebeschleunigt mit einer Grafikverarbeitungseinheit ( GPU). Es ist für eingebettete Systeme wie Smartphones , Tablet-Computer , Videospielkonsolen und PDAs konzipiert . OpenGL ES ist die "am weitesten verbreitete 3D-Grafik-API in der Geschichte".

Die API ist sprach- und plattformübergreifend . Die Bibliotheken GLUT und GLU sind für OpenGL ES nicht verfügbar. OpenGL ES wird von dem verwalteten Non-Profit - Technologie Konsortium Khronos Group . Vulkan , eine API der nächsten Generation von Khronos, wurde für einfachere Hochleistungstreiber für mobile und Desktop-Geräte entwickelt.

Versionen

Inzwischen existieren mehrere Versionen der OpenGL ES-Spezifikation. OpenGL ES 1.0 wird gegen die OpenGL 1.3-Spezifikation erstellt, OpenGL ES 1.1 wird relativ zur OpenGL 1.5-Spezifikation definiert und OpenGL ES 2.0 wird relativ zur OpenGL 2.0-Spezifikation definiert. Das bedeutet, dass beispielsweise eine für OpenGL ES 1.0 geschriebene Anwendung leicht auf den Desktop OpenGL 1.3 portierbar sein sollte; Da OpenGL ES eine abgespeckte Version der API ist, kann das Gegenteil der Fall sein oder nicht, je nach den verwendeten speziellen Funktionen.

OpenGL ES wird mit einer eigenen Version der Shading-Sprache (OpenGL ES SL) geliefert, die sich von OpenGL SL unterscheidet .

Version 1.0 und 1.1 haben beide Common (CM) und Common Lite (CL) Profile, mit dem Unterschied, dass das Common Lite- Profil nur Festkomma- statt Gleitkomma- Datentypen unterstützt, während Common beide unterstützt.

OpenGL ES 1.0

OpenGL ES 1.0 wurde am 28. Juli 2003 veröffentlicht. OpenGL ES 1.0 basiert auf der ursprünglichen OpenGL 1.3-API, wobei viele Funktionen entfernt und ein wenig hinzugefügt wurden. Ein wesentlicher Unterschied zwischen OpenGL und OpenGL ES besteht darin, dass OpenGL ES die Notwendigkeit beseitigt hat, OpenGL-Bibliotheksaufrufe mit glBeginund einzuschließen glEnd. Andere wesentliche Unterschiede bestehen darin, dass die Aufrufsemantik für primitive Rendering-Funktionen zugunsten von Vertex-Arrays geändert wurde und Festkomma- Datentypen für Vertex-Koordinaten eingeführt wurden. Außerdem wurden Attribute hinzugefügt, um die Rechenfähigkeiten von eingebetteten Prozessoren besser zu unterstützen, denen oft eine Gleitkommaeinheit (FPU) fehlt . Viele andere Funktionen und Rendering-Primitive wurden in Version 1.0 entfernt, um eine schlanke Benutzeroberfläche zu erstellen, darunter:

  • Quad- und Polygon-Rendering-Primitive,
  • texgen, Linien- und Polygon-Stipple,
  • Polygon-Modus und Antialiasing-Polygon-Rendering werden nicht unterstützt, obwohl das Rendern mit Multisample weiterhin möglich ist (anstelle von Alpha-Grenzfragmenten),
  • ARB_Image Pixelklassenoperationen werden nicht unterstützt, ebenso wenig wie Bitmaps oder 3D-Texturen,
  • einige der eher technischen Zeichnungsmodi werden eliminiert, einschließlich Frontbuffer und Akkumulationspuffer. Bitmap-Operationen, insbesondere das Kopieren von Pixeln (einzeln) sind nicht erlaubt, ebenso wenig Evaluatoren, noch (Benutzer-)Auswahloperationen,
  • Anzeigelisten und Feedback werden ebenso entfernt wie Push- und Pop-Operationen für Statusattribute,
  • Einige Materialparameter wurden entfernt, darunter Parameter für die Rückseite und benutzerdefinierte Schnittebenen.

Die aktuelle Version ist 1.0.0.2.

Nebenstellenname #Nummer sortieren Einzelheiten
OES_byte_coordinates OpenGL ES-Erweiterung #4 (ehemals OpenGL-Erweiterung #291)
OES_compressed_paletted_texture OpenGL ES-Erweiterung #6 (ehemals OpenGL-Erweiterung #294)
OES_fixed_point OpenGL ES-Erweiterung #9 (ehemals OpenGL-Erweiterung #292)
OES_query_matrix OpenGL ES-Erweiterung #16 (ehemals OpenGL-Erweiterung #296)
OES_read_format OpenGL ES-Erweiterung #17 (ehemals OpenGL-Erweiterung #295)
OES_single_precision OpenGL ES-Erweiterung #18 (ehemals OpenGL-Erweiterung #293)
Optional Mesa (die meisten Treiber)
OES_compressed_ETC1_RGB8_texture OpenGL ES-Erweiterung #5

OpenGL ES 1.1

OpenGL ES 1.1 fügte Funktionen hinzu, wie z. B. obligatorische Unterstützung für Multitexture, bessere Multitexture-Unterstützung (einschließlich Combiner und Punktprodukt- Texturoperationen ), automatische Mipmap- Generierung, Vertex-Puffer-Objekte , Zustandsabfragen, Benutzer-Clip-Ebenen und größere Kontrolle über das Punkt-Rendering. Die aktuelle Version ist 1.1.12.

Nebenstellenname #Nummer sortieren
OES_draw_texture OpenGL ES-Erweiterung #7
OES_matrix_get OpenGL ES-Erweiterung #11
OES_point_size_array OpenGL ES-Erweiterung #14
OES_point_sprite OpenGL ES-Erweiterung #15
Optional Mesa (alle Treiber)
OES_EGL_image OpenGL ES-Erweiterung #23
OES_EGL_image_external OpenGL ES-Erweiterung #87
OES_required_internalformat OpenGL ES-Erweiterung # TBD

OpenGL ES 2.0

OpenGL ES 2.0 wurde im März 2007 öffentlich veröffentlicht. Es basiert grob auf OpenGL 2.0, eliminiert jedoch den Großteil der Rendering-Pipeline mit festen Funktionen zugunsten einer programmierbaren, ähnlich wie beim Übergang von OpenGL 3.0 zu 3.1. Der Kontrollfluss in Shadern ist im Allgemeinen auf Vorwärtsverzweigungen und Schleifen beschränkt, bei denen die maximale Anzahl von Iterationen zur Kompilierzeit leicht bestimmt werden kann. Fast alle Rendering-Funktionen der Transformations- und Beleuchtungsstufe, wie die Spezifikation von Materialien und Lichtparametern, die früher von der Fixed-Function-API festgelegt wurden, werden durch vom Grafikprogrammierer geschriebene Shader ersetzt . Daher ist OpenGL ES 2.0 nicht abwärtskompatibel mit OpenGL ES 1.1. Einige Inkompatibilitäten zwischen der Desktop-Version von OpenGL und OpenGL ES 2.0 bestanden bis OpenGL 4.1, das die GL_ARB_ES2_compatibilityErweiterung hinzufügte . Die aktuelle Version ist 2.0.25.

Die Khronos Group hat ein Dokument geschrieben, das die Unterschiede zwischen OpenGL ES 2.0 und gewöhnlichem OpenGL 2.0 beschreibt.

Nebenstellenname #Nummer sortieren
OES_texture_cube_map OpenGL ES-Erweiterung #20
OES_texture_npot OpenGL ES-Erweiterung #37
OES_Tiefe24 OpenGL ES-Erweiterung #24
OES_depth_texture OpenGL ES-Erweiterung #44
OES_element_index_uint OpenGL ES-Erweiterung #26
OES_fbo_render_mipmap OpenGL ES-Erweiterung #27
OES_get_program_binary OpenGL ES-Erweiterung #47
OES_mapbuffer OpenGL ES-Erweiterung #29
OES_packed_depth_stencil OpenGL ES-Erweiterung #43
OES_rgb8_rgba8 OpenGL ES-Erweiterung #30
OES_stencil8 OpenGL ES-Erweiterung #33
OES_vertex_array_object OpenGL ES-Erweiterung #71
OES_vertex_half_float OpenGL ES-Erweiterung #38
zusätzlich in MESA (alle Treiber)
OES_EGL_image OpenGL ES-Erweiterung #23 (anders als 1.1)
OES_EGL_image_external OpenGL ES-Erweiterung #87 (anders als 1.1)
OES_texture_float_linear OES_texture_half_float_linear OpenGL ES Extension #35, erweitert in ES 3.0 und 3.1
OES_texture_float OES_texture_half_float OpenGL ES Extension #36, erweitert in ES 3.0 und 3.1
OES_standard_derivatives OpenGL ES-Erweiterung #45
OES_surfaceless_context OpenGL ES-Erweiterung #116
OES_depth_texture_cube_map OpenGL ES-Erweiterung #136
EXT_texture_filter_anisotrop OpenGL ES-Erweiterung Nr. 41
EXT_texture_type_2_10_10_10_REV OpenGL ES-Erweiterung #42
EXT_texture_compression_dxt1 OpenGL ES-Erweiterung #49
EXT_texture_format_BGRA8888 OpenGL ES-Erweiterung #51
EXT_discard_framebuffer OpenGL ES-Erweiterung #64
EXT_blend_minmax OpenGL ES-Erweiterung #65
EXT_read_format_bgra OpenGL ES-Erweiterung #66
EXT_multi_draw_arrays OpenGL ES-Erweiterung #69
EXT_frag_depth OpenGL ES-Erweiterung #86
EXT_unpack_subimage OpenGL ES-Erweiterung #90
EXT_texture_rg OpenGL ES-Erweiterung Nr. 103
EXT_draw_buffers OpenGL ES-Erweiterung #151
EXT_compressed_ETC1_RGB8_sub_texture OpenGL ES-Erweiterung #188
NV_draw_buffers OpenGL ES-Erweiterung #91
NV_fbo_color_attachments OpenGL ES-Erweiterung #92
NV_read_buffer OpenGL ES-Erweiterung #93
NV_read_depth_stencil OpenGL ES-Erweiterung #94
ANGLE_texture_compression_dxt OpenGL ES-Erweiterung #111

OpenGL ES 3.0

Die OpenGL ES 3.0-Spezifikation wurde im August 2012 veröffentlicht. OpenGL ES 3.0 ist abwärtskompatibel mit OpenGL ES 2.0, sodass Anwendungen inkrementell neue visuelle Funktionen zu Anwendungen hinzufügen können. OpenGL 4.3 bietet volle Kompatibilität mit OpenGL ES 3.0. Version 3.0 ist auch die Basis für WebGL 2.0. Aktuell ist Version 3.0.6.

Zu den neuen Funktionen in der OpenGL ES 3.0-Spezifikation gehören:

Nebenstellenname #Nummer sortieren Einzelheiten
KHR_context_flush_control OpenGL ES-Erweiterung #191 (nur für GL_KHR_context_flush_control)
zusätzlich in MESA (alle Treiber)
OES_texture_compression_astc OpenGL ES-Erweiterung #162
EXT_texture_border_clamp OpenGL ES-Erweiterung #182
EXT_draw_elements_base_vertex OpenGL ES-Erweiterung #204
OES_EGL_image_external_essl3 OpenGL ES-Erweiterung #220
MESA_shader_integer_functions OpenGL ES-Erweiterung #495

OpenGL ES 3.1

Die OpenGL ES 3.1-Spezifikation wurde im März 2014 veröffentlicht. Zu den neuen Funktionen von OpenGL ES 3.1 gehören:

  • Computing-Shader
  • Unabhängige Vertex- und Fragment-Shader
  • Indirekte Zeichenbefehle

OpenGL ES 3.1 ist abwärtskompatibel mit OpenGL ES 2.0 und 3.0, sodass Anwendungen schrittweise neue Funktionen integrieren können. Die aktuelle Version ist 3.1-(November 2016).

Nebenstellenname #Nummer sortieren
ARB_arrays_of_arrays ARB-Erweiterung #120
ARB_compute_shader ARB-Erweiterung #122
ARB_explicit_uniform_location ARB-Erweiterung #128
ARB_framebuffer_no_attachments ARB-Erweiterung #130
ARB_program_interface_query ARB-Erweiterung #134
ARB_shader_atomic_counters ARB-Erweiterung #114
ARB_shader_image_load_store ARB-Erweiterung #115
ARB_shader_storage_buffer_object ARB-Erweiterung #137
ARB_separate_shader_objects ARB-Erweiterung #97
ARB_stencil_texturing ARB-Erweiterung #138
ARB_vertex_attrib_binding ARB-Erweiterung #125
ARB_draw_indirect ARB-Erweiterung #87
ARB_shading_language_packing ARB-Erweiterung #116
ARB_shader_image_size ARB-Erweiterung #136
ARB_texture_storage_multisample ARB-Erweiterung #141
ARB_texture_multisample ARB-Erweiterung #67
EXT_shader_integer_mix OpenGL ES-Erweiterung #161
Optional Mesa (alle Treiber OpenGL ES 3.1+)
ARB_sample_locations ARB-Erweiterung #181
OES_texture_view OpenGL ES-Erweiterung #218
NV_Bildformate OpenGL ES-Erweiterung #200
EXT_render_snorm OpenGL ES-Erweiterung #206
EXT_texture_norm16 OpenGL ES-Erweiterung #207

OpenGL ES 3.2

Die OpenGL ES 3.2-Spezifikation wurde im August 2015 öffentlich veröffentlicht. Zu den neuen Funktionen von OpenGL ES 3.2 gehören:

  • Geometrie- und Tessellations- Shader zur effizienten Verarbeitung komplexer Szenen auf der GPU.
  • Gleitkomma-Renderziele für mehr Flexibilität bei Rechenoperationen mit höherer Präzision.
  • ASTC-Komprimierung zur Reduzierung des Speicherbedarfs und der Bandbreite, die zum Verarbeiten von Texturen verwendet werden.
  • Verbessertes Mischen für anspruchsvolles Compositing und Handhabung von mehreren Farbanhängen.
  • Erweiterte Texturziele wie Texturpuffer, Multisample-2D-Arrays und Cube-Map-Arrays.
  • Debug- und Robustheitsfunktionen für eine einfachere Codeentwicklung und sichere Ausführung.

Aktueller Stand ist 3.2.6 Juli 2019.

Nebenstellenname #Nummer sortieren
KHR_blend_equation_advanced OpenGL ES-Erweiterung #168
EXT_color_buffer_float OpenGL ES-Erweiterung #137
KHR_debug OpenGL ES-Erweiterung #118
KHR_Robustheit OpenGL ES-Erweiterung #190
OES_copy_image OpenGL ES-Erweiterung #208
OES_draw_buffers_indexed OpenGL ES-Erweiterung #209
OES_draw_elements_base_vertex OpenGL ES-Erweiterung #219
OES_geometry_shader OpenGL ES-Erweiterung #210
OES_gpu_shader5 OpenGL ES-Erweiterung #211
OES_sample_shading OpenGL ES-Erweiterung #169
OES_sample_variables OpenGL ES-Erweiterung #170
OES_shader_image_atomic OpenGL ES-Erweiterung #171
OES_shader_io_blocks OpenGL ES-Erweiterung #213
OES_shader_multisample_interpolation OpenGL ES-Erweiterung #172
OES_tessellation_shader OpenGL ES-Erweiterung #214
OES_texture_border_clamp OpenGL ES-Erweiterung #215
OES_texture_buffer OpenGL ES-Erweiterung #216
OES_texture_cube_map_array OpenGL ES-Erweiterung #217
OES_texture_stencil8 OpenGL ES-Erweiterung #173
OES_texture_storage_multisample_2d_array OpenGL ES-Erweiterung Nr. 174
KHR_texture_compression_astc_ldr OpenGL ES-Erweiterung Nr. 117 (nur LDR)
OES_primitive_bounding_box OpenGL ES-Erweiterung #212
Optional Mesa (alle Treiber OpenGL ES 3.2+)
KHR_texture_compression_astc_hdr OpenGL ES-Erweiterung Nr. 117 (LDR enthalten), ARB-Erweiterung Nr. 118
KHR_blend_equation_advanced_coherent OpenGL ES-Erweiterung #168
KHR_texture_compression_astc_sliced_3d OpenGL ES-Erweiterung Nr. 249 (ARB-Erweiterung Nr. 189)

OES_viewport_array

OpenGL ES-Erweiterung #267

Einige weitere Erweiterungen sind in Mesa für die nächste OpenGL ES-Version entwickelt oder in Entwicklung (siehe Mesamatrix).

Die API der nächsten Generation ist Vulkan.

Plattformnutzung

Eine vollständige Liste der Unternehmen und ihrer konformen Produkte finden Sie hier

OpenGL ES 1.0

OpenGL ES 1.0 eine offizielle 3D - Grafik hinzugefügt API zum Android und Symbian - Betriebssystemen sowie von QNX Es wird auch unterstützt durch die PlayStation 3 als eines seiner offiziellen Grafik - APIs (die andere ist niedrigem Niveau libgcm Bibliothek) mit Nvidias Cg anstelle von GLSL. Die PlayStation 3 enthält auch mehrere Funktionen der 2.0-Version von OpenGL ES.

OpenGL ES 1.1

Die 1.1-Version von OpenGL ES wird unterstützt von:

OpenGL ES 2.0

Unterstützt durch:

OpenGL ES 3.0

Unterstützt durch:

Unterstützt von einigen neueren Versionen dieser GPUs:

  • Adreno 300 und 400 Serie ( Android , BlackBerry 10 , Windows10 Windows RT )
  • Mali T600-Serie ab (Android, Linux , Windows 7)
  • PowerVR- Serie6 ( iOS , Linux)
  • Vivante (Android, OS X 10.8.3, Windows 7)
  • Nvidia (Android), Tesla G80+: Linux, Windows 7+
  • Intel HD Graphics Sandy Bridge und höher (Linux)
  • AMD Terascale und aktuelle GCN-Architektur (Windows, Linux)
  • LLVMpipe und Softpipe: Softtreiber in Mesa
  • VIRGL: virtueller Treiber für virtuelle Maschinen im Jahr 2018 mit Mesa 18.1 (Siehe Mesamatrix.net)

OpenGL ES 3.1

Unterstützt von Windows, Linux, Android (seit Version 5.0) auf Geräten mit entsprechender Hardware und Treibern, einschließlich:

  • Adreno 400-Serie
  • Adreno 500-Serie (Mesa 18.1 für Linux und Android)
  • AMD Terascale und aktuelle GCN-Architektur (Windows, Linux (r600, radeonSI))
  • Intel HD-Grafik für Intel Atom Z3700-Serie (Android)
  • Intel HD-Grafik für Intel Celeron N- und J-Serie (Android)
  • Intel HD-Grafik für Intel Pentium N- und J-Serie (Android)
  • Intel HD Graphics Haswell und höher (Linux Mesa: bisherige Ivy Bridge fast ohne Schablonentexturierung)
  • Mali T6xx (midgard) ab Serie (Android, Linux)
  • Nvidia GeForce 400-Serie ab (Windows, Linux)
  • Nvidia Tegra K1 (Android, Linux)
  • Nvidia Tegra X1 (Android)
  • PowerVR-Serie 6, 6XE, 6XT, 7XE und 7XT (Linux, Android)
  • Ab Vivante GC2000-Serie (optional mit GC800 und GC1000)
  • v3d: Treiber für Broadcom ARM Himbeer in Mesa (Linux)
  • VIRGL: virtueller Treiber für virtuelle Maschinen im Jahr 2018 mit Mesa 18.1 (Siehe Mesamatrix.net)
  • LLVMpipe: Softwaretreiber in Mesa 20.2 (Linux)
  • softpipe: Softwaretreiber in Mesa 20.3 (Linux)
  • Zink: Emulationstreiber in Mesa 21.1 (Linux)

Android-Erweiterungspaket

Android Extension Pack (AEP) ist eine Reihe von OpenGL ES 3.1-Erweiterungen, die alle in einer einzigen Erweiterung gebündelt sind, die 2014 von Google eingeführt wurde. Dadurch können Anwendungen alle Funktionen der Erweiterungen verwenden, während nur das Vorhandensein von a . getestet wird einzelne. Das AEP wurde offiziell zu Android Lollipop hinzugefügt, um zusätzliche Funktionen wie Tessellation über das, was offiziell in der GLES 3.1-Revision enthalten war, bereitzustellen. Das OpenGL ES 3.2-Update besteht größtenteils aus den AEP-Ergänzungen, die bereits in Desktop-OpenGL vorhanden sind.

OpenGL ES 3.2

OpenGL ES 3.2, das das Android Extension Pack (AEP) enthält, "bietet eine kleine Anzahl von Verbesserungen gegenüber OpenGL ES 3.1 des letzten Jahres. Beide verwenden ähnliche Funktionen des AEP. Von dem AEP wird OpenGL ES 3.2-kompatible Hardware Tessellation für zusätzliche Geometriedetails, neue Geometrie-Shader, ASTC-Texturkomprimierung für eine geringere Speicherbandbreite, Gleitkomma-Renderziele für hochgenaue Rechenprozesse und neue Debugging-Funktionen für Entwickler.Diese High-End-Funktionen sind bereits in der vollständigen OpenGL 4-Spezifikation der Gruppe enthalten ."

Unterstützt von Windows, Linux, Android (seit Version 6.0 möglich, 7.0+ Vulkan 1.0 und OpenGL ES 3.2 erforderlich) auf Geräten mit entsprechender Hardware und Treibern, darunter:

  • Adreno 420 und neuer (Android, Linux (freedreno))
  • AMD GCN-Architektur (Windows, Linux (Mesa 18.2 mit radeonSI))
  • Intel HD Graphics Skylake und höher (Linux)
  • Mali-T760 und neuer (Android, Linux)
  • Nvidia GeForce 400-Serie (Fermi) und neuer (Windows, Linux)
  • VIRGL: virtueller Treiber für virtuelle Maschinen im Jahr 2018 mit Mesa 18.1 (Siehe Mesamatrix.net)
  • LLVMpipe: Softwaretreiber in Mesa 20 (Linux)

Einstellung auf Apple-Geräten

OpenGL ES (und OpenGL) ist in Apples Betriebssystemen veraltet , funktioniert aber immer noch bis mindestens iOS 12.

Die Zukunft

Derzeit ist keine neue Kernversion von OpenGL ES geplant, da angenommen wurde, dass die Einführung von Vulkan es in eingebetteten und mobilen Anwendungen verdrängt. Die Entwicklung von Erweiterungen für OpenGL ES wird ab 2017 fortgesetzt.

OpenGL-Kompatibilität

Es wurden einige Bibliotheken erstellt, um OpenGL-Aufrufe mit GL ES zu emulieren:

  • Nvidia bietet eine 2-Klausel- BSD-lizensierte Bibliothek namens Regal an, die ursprünglich von Cass Everitt gestartet wurde. Es wurde zuletzt 2016 aktualisiert. Regal wird beispielsweise von Googles NaCl verwendet .
  • Das vom MIT lizenzierte GL4ES emuliert OpenGL 2.1/1.5 unter Verwendung von GL ES 2.0/1.1. Es basiert auf glshim.

Siehe auch

  • Direct3D – Windows-API für leistungsstarke 3D-Grafiken mit Unterstützung für 3D-Beschleunigungshardware
  • DirectX – Windows-API zur Bearbeitung von Aufgaben im Zusammenhang mit Grafik und Video
  • Metal – Low-Level, hochleistungsfähige 3D-beschleunigte Grafikbibliothek für Apple-Geräte
  • OpenSL ES – API für Audio auf eingebetteten Systemen, entwickelt von der Khronos Group
  • ANGLE (Software) – Von Google entwickelte Bibliothek, um OpenGL ES-Aufrufe in die von DirectX oder Vulkan umzuwandeln

Verweise

Weiterlesen

  • Ginsburg, Dan; Purnomo, Budirijanto; Schreiner, Dave; Munshi, Aaftab (2014). OpenGL ES 3.0-Programmierhandbuch . Addison-Wesley-Profi. ISBN 978-0-321-93388-1.
  • Pulli, Kari; Aarnio, Tomi; Miettinen, Ville; Roimela, Kimmo & Vaarala, Jani (2007). Mobile 3D-Grafik mit OpenGL ES und M3G . Morgan Kaufmann. ISBN 978-0-12-373727-4.
  • Astle, Dave & Durnil, David (2004). OpenGL ES-Spielentwicklung . Kurs Technologie PTR. ISBN 1-59200-370-2.
  • Pulli, Kari; Aarnio, Tomi; Roimela, Kimmo & Vaarala, Jani. Entwerfen von grafischen Programmierschnittstellen für mobile Geräte . IEEE CG&A 2005 . doi : 10.1109/MCG.2005.129 .

Externe Links