OpenGL ES

Логотип

OpenGL ES (OpenGL for Embedded Systems — OpenGL для встраиваемых систем) — подмножество графического интерфейса OpenGL, разработанное специально для встраиваемых систем — мобильных телефонов, карманных компьютеров, игровых консолей. OpenGL ES определяется и продвигается консорциумом Khronos Group, в который входят производители программного и аппаратного обеспечения, заинтересованные в открытом API для графики и мультимедиа.

Версии

В настоящее время существует уже несколько версий спецификации OpenGL ES. Версии 1.0 и 1.1 имеют профили common и common lite. Common lite отличается тем что поддерживает только вычисления на числах с фиксированной десятичной точкой, в то время как common поддерживает также и вычисления с плавающей точкой.

Версия Дата Описание / изменения
1.0 28 июля 2003 На основе спецификации OpenGL 1.3.
1.1 На основе спецификации OpenGL 1.5.
2.0 март 2007 На основе спецификации OpenGL 2.0.
3.0 август 2012 На основе спецификации OpenGL 3.3 (но без геометрических шейдеров).
3.1 март 2014
3.2 август 2015

Использование

OpenGL ES 1.0 был выбран в качестве официального 3D API в Symbian OS и для платформы Android.

OpenGL ES 1.0 плюс некоторые возможности 2.0 и Cg поддерживаются в PlayStation 3 в виде PSGL как один из доступных графических API,но на практике это не используется, потому что подход OpenGL не эффективен для аппратного обеспечения PlayStation 3 [1].

OpenGL ES 1.1 используется в качестве графической библиотеки в iPhone SDK.

OpenGL ES 2.0 Используется в Nokia N900, поддерживается в Symbian³, поддерживается в Android версии 2.2 и выше, используется в игровой консоли Pandora, а также в iPhone SDK 3.0 (только для iPhone 3GS и новых iPod Touch), поддерживается в Bada OS. Эти устройства также выбраны для использования WebGL (OpenGL для браузеров).

OpenGL ES 3.0 базируется на OpenGL 3.3 и OpenGL 4.2. OpenGL ES 3.0 поддерживается в Android версии 4.3 и выше. Краткий список нововведений:

  • occlusion queries, transform feedback, instanced rendering и поддержка 4-х и более rendering targets;
  • высококачественная ETC2/EAC-компрессия текстур;
  • новая версия GLSL ES языка шейдеров с полной поддержкой операций над целыми числами и 32-битными числами с плавающей запятой;
  • гарантированная поддержка floating-point-текстур, 3D-текстур, текстур глубины, текстур вершин, NPOT-текстур, R/RG-текстур и других;
  • обратная совместимость с OpenGL ES 2.0.

OpenGL ES 3.1 поддерживается в Android версии 5.0 и выше[2].

Apple и OpenGL ES

Компания Apple объявила устаревшими технологии OpenGL и OpenGL ES.[3]

Будущее

Нет планов для новой версии, Vulkan сместил приоритеты. [4]

Vulkan

Vulkan, ранее известный как glNext, — новый API, отвечающий требованиям современных реалий и устраняющий основные недостатки OpenGL ES. Он предлагает более низкие накладные расходы и более непосредственный контроль над GPU. Khronos Group ведёт его разработку с 2014 года. Версия 1.0 была выпущена 16 февраля 2016 года[5].

См. также

  • GLBenchmark — тест измерения производительности OpenGL ES.
  • M3G — высокоуровневый стандарт трёхмерной графики Java ME. Может базироваться на OpenGL ES.
  • JSR-239 — низкоуровневый API мобильной трёхмерной графики для Java ME (прямой интерфейс к OpenGL ES).

Примечания

  1. Sony’s PlayStation 3’s main graphics API is *NOT* OpenGL!
  2. OpenGL ES | Для разработчиков Android (англ.). Android Developers. Дата обращения: 20 февраля 2020. Архивировано 29 октября 2020 года.
  3. Apple Inc. What's New in iOS - Apple Developer (англ.). developer.apple.com. — «Apps built using OpenGL ES will continue to run in iOS 12, but OpenGL ES is deprecated in iOS 13.» Дата обращения: 7 августа 2018. Архивировано 8 августа 2018 года.
  4. Khronos. Vulkan, OpenGL, and OpenGL ES. (англ.). www.khronos.org. Дата обращения: 24 апреля 2020. Архивировано 22 мая 2020 года.
  5. Khronos Releases Vulkan 1.0 Specification. Дата обращения: 24 апреля 2020. Архивировано 15 декабря 2017 года.

Ссылки