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
правитьVulkan, ранее известный как glNext, — новый API, отвечающий требованиям современных реалий и устраняющий основные недостатки OpenGL ES. Он предлагает более низкие накладные расходы и более непосредственный контроль над GPU. Khronos Group ведёт его разработку с 2014 года. Версия 1.0 была выпущена 16 февраля 2016 года[5].
См. также
правитьПримечания
править- ↑ Sony’s PlayStation 3’s main graphics API is *NOT* OpenGL!
- ↑ OpenGL ES | Для разработчиков Android (англ.). Android Developers. Дата обращения: 20 февраля 2020. Архивировано 29 октября 2020 года.
- ↑ 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 года.
- ↑ Khronos. Vulkan, OpenGL, and OpenGL ES. (англ.). www.khronos.org. Дата обращения: 24 апреля 2020. Архивировано 22 мая 2020 года.
- ↑ Khronos Releases Vulkan 1.0 Specification . Дата обращения: 24 апреля 2020. Архивировано 15 декабря 2017 года.
Ссылки
править- Официальный веб-сайт Архивная копия от 13 мая 2008 на Wayback Machine