OpenGL ES
В этой статье используются голые URL-адреса , которые неинформативны и уязвимы к порче ссылок . ( июнь 2022 г. ) |
Оригинальный автор(ы) | АРБ |
---|---|
Разработчик(и) | Хронос Групп |
Первоначальный выпуск | 28 июля 2003 г |
Стабильная версия | 3.2 [1] / 10 августа 2015 г |
Операционная система | Кросс-платформенный |
Платформа | Кросс-платформенный |
Преемник | Вулкан |
Тип | API |
Лицензия | Бесплатно, роялти или лицензирование |
Веб-сайт | www |
OpenGL для встраиваемых систем ( OpenGL ES или GLES ) — это подмножество [2] интерфейса OpenGL (API) рендеринга компьютерной графики прикладного программирования для рендеринга 2D и 3D компьютерной графики , например, используемой в видеоиграх , обычно с аппаратным ускорением с использованием графического процессора (GPU). Он предназначен для встраиваемых систем , таких как смартфоны , планшетные компьютеры , игровые консоли и КПК . OpenGL ES — это «наиболее широко используемый API 3D-графики в истории». [3]
API является межъязыковым и мультиплатформенным . Библиотека GLU и исходный GLUT недоступны для OpenGL ES, однако freeglut поддерживает ее. OpenGL ES находится под управлением некоммерческого технологического консорциума Khronos Group . Vulkan , API нового поколения от Khronos, создан для более простых высокопроизводительных драйверов для мобильных и настольных устройств. [4]
Версии
[ редактировать ]Сейчас существует несколько версий спецификации OpenGL ES. OpenGL ES 1.0 создан на основе спецификации OpenGL 1.3, OpenGL ES 1.1 определен на основе спецификации OpenGL 1.5, а OpenGL ES 2.0 определен на основе спецификации OpenGL 2.0. Это означает, что, например, приложение, написанное для OpenGL ES 1.0, должно быть легко перенесено на настольный OpenGL 1.3; поскольку OpenGL ES представляет собой урезанную версию API, обратное может быть верным, а может и не быть, в зависимости от конкретных используемых функций.
OpenGL ES поставляется со своей собственной версией языка шейдеров (OpenGL ES SL), которая отличается от OpenGL SL . [5]
Версия 1.0 и 1.1 имеют профили common (CM) и common lite (CL), разница в том, что common lite поддерживает только поддержку типов данных с фиксированной запятой, а не с плавающей запятой , тогда как common поддерживает оба типа.
OpenGL ES 1.0
[ редактировать ]OpenGL ES 1.0 был публично выпущен 28 июля 2003 года. OpenGL ES 1.0 основан на исходном API OpenGL 1.3, с удаленными и небольшими добавлениями многих функций. Одним из существенных различий между OpenGL и OpenGL ES является то, что OpenGL ES устранил необходимость заключать вызовы библиотеки OpenGL в скобки. glBegin
и glEnd
. Другие существенные различия заключаются в том, что семантика вызова примитивных функций рендеринга была изменена в пользу массивов вершин, а с фиксированной точкой для координат вершин были введены типы данных . Атрибуты также были добавлены для лучшей поддержки вычислительных возможностей встроенных процессоров, в которых часто отсутствует модуль с плавающей запятой (FPU). Многие другие функции и примитивы рендеринга были удалены в версии 1.0 для создания упрощенного интерфейса, в том числе:
- примитивы рендеринга четырехугольников и полигонов;
- texgen, штриховка линий и многоугольников;
- режим многоугольника и рендеринг многоугольников со сглаживанием не поддерживаются, хотя рендеринг с использованием мультисэмпла все еще возможен (вместо фрагментов альфа-границы);
ARB_Image
операции с классами пикселей, растровые изображения и 3D-текстуры не поддерживаются;- исключено несколько более технических режимов рисования, включая передний буфер и буфер накопления;
- растровые операции по копированию пикселей по отдельности, операции оценки и пользовательского выбора не допускаются;
- списки отображения и обратная связь удалены, как и операции push и pop для атрибутов состояния;
- были удалены некоторые параметры материала, включая параметры задней поверхности и определяемые пользователем плоскости отсечения.
Актуальная версия — 1.0.0.2. [6]
Имя расширения | Сортировать #Число | Подробности |
---|---|---|
OES_byte_coordinates | Расширение OpenGL ES №4 | (ранее расширение OpenGL № 291) |
OES_compressed_paletted_texture | Расширение OpenGL ES №6 | (ранее расширение OpenGL № 294) |
OES_fixed_point | Расширение OpenGL ES №9 | (ранее расширение OpenGL № 292) |
OES_query_matrix | Расширение OpenGL ES №16 | (ранее расширение OpenGL № 296) |
OES_read_format | Расширение OpenGL ES № 17 | (ранее расширение OpenGL № 295) |
OES_single_precision | Расширение OpenGL ES №18 | (ранее расширение OpenGL № 293) |
необязательный | Меса (большинство водителей) | |
OES_compressed_ETC1_RGB8_texture | Расширение OpenGL ES №5 |
OpenGL ES 1.1
[ редактировать ]В OpenGL ES 1.1 добавлены такие функции, как обязательная поддержка мультитекстуры, улучшенная поддержка мультитекстуры (включая операции объединения и скалярного произведения текстур), автоматическое создание MIP-карт , объекты буфера вершин , запросы состояния, пользовательские плоскости отсечения и больший контроль над рендерингом точек. [7] Актуальная версия — 1.1.12. [8]
Имя расширения | Сортировать #Число |
---|---|
OES_draw_texture | Расширение OpenGL ES №7 |
OES_matrix_get | Расширение OpenGL ES №11 |
OES_point_size_array | Расширение OpenGL ES № 14 |
OES_point_sprite | Расширение OpenGL ES №15 |
необязательный | Меса (все водители) |
OES_framebuffer_object | Расширение OpenGL ES № 10 (стало основным в ES 2.0) [9] |
OES_EGL_изображение | Расширение OpenGL ES № 23 |
OES_EGL_image_external | Расширение OpenGL ES № 87 |
OES_required_internalformat | Расширение OpenGL ES # подлежит уточнению |
OpenGL ES 2.0
[ редактировать ]OpenGL ES 2.0 был публично выпущен в марте 2007 года. [10] Он примерно основан на OpenGL 2.0, но в нем исключена большая часть конвейера рендеринга с фиксированными функциями в пользу программируемого, что аналогично переходу от OpenGL 3.0 к 3.1. [11] Поток управления в шейдерах обычно ограничивается прямым ветвлением и циклами, максимальное количество итераций которых можно легко определить во время компиляции. [12] Почти все функции рендеринга на этапе преобразования и освещения, такие как спецификация материалов и параметров освещения, ранее заданные API с фиксированными функциями, заменяются шейдерами , написанными графическим программистом. В результате OpenGL ES 2.0 не имеет обратной совместимости с OpenGL ES 1.1. Некоторые несовместимости между настольной версией OpenGL и OpenGL ES 2.0 сохранялись до версии OpenGL 4.1, в которой был добавлен GL_ARB_ES2_compatibility
расширение. [13] Актуальная версия — 2.0.25. [14]
Группа Khronos написала документ, описывающий различия между OpenGL ES 2.0 и обычным OpenGL 2.0. [15]
Имя расширения | Сортировать #Число |
---|---|
OES_texture_cube_map | Расширение OpenGL ES № 20 |
OES_texture_npot | Расширение OpenGL ES № 37 |
OES_глубина24 | Расширение OpenGL ES № 24 |
OES_глубина_текстура | Расширение OpenGL ES № 44 |
OES_element_index_uint | Расширение OpenGL ES № 26 |
OES_fbo_render_mipmap | Расширение OpenGL ES № 27 |
OES_get_program_binary | Расширение OpenGL ES № 47 |
OES_mapbuffer | Расширение OpenGL ES № 29 |
OES_packed_глубина_трафарет | Расширение OpenGL ES № 43 |
OES_rgb8_rgba8 | Расширение OpenGL ES №30 |
OES_stencil8 | Расширение OpenGL ES № 33 |
OES_vertex_half_float | Расширение OpenGL ES № 38 |
дополнительный | в MESA (все драйверы) |
OES_EGL_изображение | Расширение OpenGL ES № 23 (отлично для версии 1.1) |
OES_EGL_image_external | Расширение OpenGL ES № 87 (отличается от версии 1.1) |
OES_texture_3D | Расширение OpenGL ES № 34 (стало основным в ES 3.0) [16] |
OES_texture_float_linear OES_texture_half_float_linear | Расширение OpenGL ES № 35, расширенное в ES 3.0 и 3.1. |
OES_texture_float OES_texture_half_float | Расширение OpenGL ES № 36, расширенное в ES 3.0 и 3.1. |
OES_standard_derivatives | Расширение OpenGL ES № 45 |
OES_vertex_array_object | Расширение OpenGL ES #71 (стало основным в ES 3.0) [16] |
OES_surfaceless_context | Расширение OpenGL ES № 116 |
OES_глубина_текстура_куб_карта | Расширение OpenGL ES № 136 |
EXT_texture_filter_anisotropic | Расширение OpenGL ES № 41 |
EXT_texture_type_2_10_10_10_REV | Расширение OpenGL ES № 42 |
EXT_texture_compression_dxt1 | Расширение OpenGL ES № 49 |
EXT_texture_format_BGRA8888 | Расширение OpenGL ES №51 |
EXT_discard_framebuffer | Расширение OpenGL ES №64 |
EXT_blend_minmax | Расширение OpenGL ES №65 |
EXT_read_format_bgra | Расширение OpenGL ES №66 |
EXT_multi_draw_arrays | Расширение OpenGL ES №69 |
EXT_frag_глубина | Расширение OpenGL ES № 86 |
EXT_unpack_subimage | Расширение OpenGL ES №90 |
EXT_texture_rg | Расширение OpenGL ES № 103 |
EXT_draw_buffers | Расширение OpenGL ES № 151 |
EXT_compressed_ETC1_RGB8_sub_texture | Расширение OpenGL ES № 188 |
NV_draw_buffers | Расширение OpenGL ES №91 |
NV_fbo_color_attachments | Расширение OpenGL ES №92 |
NV_read_buffer | Расширение OpenGL ES №93 |
NV_read_length_stencil | Расширение OpenGL ES №94 |
ANGLE_texture_compression_dxt | Расширение OpenGL ES № 111 |
OpenGL ES 3.0
[ редактировать ]Спецификация OpenGL ES 3.0 [17] был публично выпущен в августе 2012 года. [18] Он обратно совместим с OpenGL ES 2.0 и частично совместим с WebGL 2.0. [19] поскольку WebGL 2.0 был разработан с учетом высокой степени совместимости с OpenGL ES 3.0. [20] Текущая версия стандарта OpenGL ES 3.0 — 3.0.6, выпущенная в ноябре 2019 года. [21]
Новые функциональные возможности спецификации OpenGL ES 3.0 включают в себя:
- многочисленные улучшения конвейера рендеринга для ускорения расширенных визуальных эффектов, включая: запросы окклюзии , обратную связь по преобразованию , экземплярный рендеринг и поддержку четырех или более целей рендеринга ;
- высококачественное ETC2/EAC сжатие текстур в качестве стандартной функции, устраняющее необходимость в разном наборе текстур для каждой платформы;
- новая версия языка шейдеров GLSL ES [22] с полной поддержкой целочисленных и 32-битных с плавающей запятой ; операций
- значительно расширенные функции текстурирования , включая гарантированную поддержку текстур с плавающей запятой , 3D-текстур, текстур глубины, текстур вершин, текстур NPOT, текстур R/RG, неизменяемых текстур, текстур 2D-массивов, swizzles , LOD и уровня зажимов MIP, бесшовных кубических карт и объектов сэмплера. ;
- обширный набор необходимых форматов текстур и буферов рендеринга с явно заданным размером, что уменьшает вариативность реализации и значительно упрощает написание портативных приложений.
Имя расширения | Сортировать #Число | Подробности |
---|---|---|
KHR_context_flush_control | Расширение OpenGL ES № 191 | (только для GL_KHR_context_flush_control) |
дополнительный | в MESA (все драйверы) | |
OES_texture_compression_astc | Расширение OpenGL ES № 162 | |
EXT_texture_border_clamp | Расширение OpenGL ES № 182 | |
EXT_draw_elements_base_vertex | Расширение OpenGL ES № 204 | |
OES_EGL_image_external_essl3 | Расширение OpenGL ES № 220 | |
MESA_shader_integer_functions | Расширение OpenGL ES № 495 |
OpenGL ES 3.1
[ редактировать ]Спецификация OpenGL ES 3.1. [23] был публично выпущен в марте 2014 года.Новые функции OpenGL ES 3.1 включают в себя: [24]
- Вычислительные шейдеры
- Независимые вершинные и фрагментные шейдеры
- Косвенные команды рисования
OpenGL ES 3.1 обратно совместим с OpenGL ES 2.0 и 3.0, что позволяет приложениям постепенно включать новые функции. Актуальная версия: 3.1-(ноябрь 2016 г.). [25]
Имя расширения | Сортировать #Число |
---|---|
ARB_arrays_of_arrays | Расширение ARB № 120 |
ARB_compute_shader | Расширение ARB № 122 |
ARB_explicit_uniform_location | Расширение ARB № 128 |
ARB_framebuffer_no_attachments | Расширение ARB № 130 |
ARB_program_interface_query | Расширение ARB № 134 |
ARB_shader_atomic_counters | Расширение ARB № 114 |
ARB_shader_image_load_store | Расширение ARB № 115 |
ARB_shader_storage_buffer_object | Расширение ARB № 137 |
ARB_separate_shader_objects | Расширение ARB № 97 |
ARB_stencil_texturing | Расширение ARB № 138 |
ARB_vertex_attrib_binding | Расширение ARB № 125 |
ARB_draw_indirect | Расширение ARB № 87 |
ARB_shading_language_packing | Расширение ARB № 116 |
ARB_shader_image_size | Расширение ARB № 136 |
ARB_texture_storage_multisample | Расширение ARB № 141 |
ARB_texture_multisample | Расширение ARB № 67 |
EXT_shader_integer_mix | Расширение OpenGL ES № 161 |
необязательный | Mesa (все драйверы OpenGL ES 3.1+) |
ARB_sample_locations | Расширение ARB № 181 |
OES_texture_view | Расширение OpenGL ES № 218 |
NV_image_formats | Расширение OpenGL ES № 200 |
EXT_render_snorm | Расширение OpenGL ES № 206 |
EXT_texture_norm16 | Расширение OpenGL ES № 207 |
OpenGL ES 3.2
[ редактировать ]Спецификация OpenGL ES 3.2. [26] был публично выпущен в августе 2015 года.Новые возможности OpenGL ES 3.2 включают в себя:
- Шейдеры геометрии и тесселяции для эффективной обработки сложных сцен на графическом процессоре.
- Цели рендеринга с плавающей запятой для повышения гибкости при выполнении высокоточных вычислительных операций.
- Сжатие ASTC для уменьшения объема памяти и пропускной способности, используемых для обработки текстур.
- Улучшенное смешивание для сложной композиции и обработки нескольких цветовых вложений.
- Расширенные целевые текстуры, такие как текстурные буферы, 2D-массив с несколькими выборками и массивы кубических карт.
- Функции отладки и обеспечения надежности для упрощения разработки кода и безопасного выполнения.
Фактическое состояние: 3.2.6 июля 2019 г. [27] [28]
Имя расширения | Сортировать #Число |
---|---|
KHR_blend_equation_advanced | Расширение OpenGL ES № 168 |
EXT_color_buffer_float | Расширение OpenGL ES № 137 |
KHR_debug | Расширение OpenGL ES № 118 |
KHR_робастность | Расширение OpenGL ES № 190 |
OES_copy_image | Расширение OpenGL ES № 208 |
OES_draw_buffers_indexed | Расширение OpenGL ES № 209 |
OES_draw_elements_base_vertex | Расширение OpenGL ES № 219 |
OES_geometry_shader | Расширение OpenGL ES № 210 |
OES_gpu_shader5 | Расширение OpenGL ES № 211 |
OES_sample_shading | Расширение OpenGL ES № 169 |
OES_sample_variables | Расширение OpenGL ES № 170 |
OES_shader_image_atomic | Расширение OpenGL ES № 171 |
OES_shader_io_blocks | Расширение OpenGL ES № 213 |
OES_shader_multisample_interpolation | Расширение OpenGL ES № 172 |
OES_tessellation_shader | Расширение OpenGL ES № 214 |
OES_texture_border_clamp | Расширение OpenGL ES № 215 |
OES_texture_buffer | Расширение OpenGL ES № 216 |
OES_texture_cube_map_array | Расширение OpenGL ES № 217 |
OES_texture_stencil8 | Расширение OpenGL ES № 173 |
OES_texture_storage_multisample_2d_array | Расширение OpenGL ES № 174 |
KHR_texture_compression_astc_ldr | Расширение OpenGL ES № 117 (только LDR) |
OES_primitive_bounding_box | Расширение OpenGL ES № 212 |
необязательный | Mesa (все драйверы OpenGL ES 3.2+) |
KHR_texture_compression_astc_hdr | Расширение OpenGL ES № 117 (включая LDR), расширение ARB № 118 |
KHR_blend_equation_advanced_coherent | Расширение OpenGL ES № 168 |
KHR_texture_compression_astc_sliced_3d | Расширение OpenGL ES № 249 (расширение ARB № 189) |
Расширение OpenGL ES № 267 |
Еще несколько расширений разрабатываются или находятся в стадии разработки в Mesa для следующей версии OpenGL ES (см. Mesamatrix).
API следующего поколения — Vulkan. [29]
Использование платформы
[ редактировать ]Полный список компаний и соответствующих им продуктов можно найти здесь.
OpenGL ES 1.0
[ редактировать ]официальный API 3D-графики . OpenGL ES 1.0 добавил в Android [30] и ОС Symbian v8.0a [31] [32] операционных систем, а также QNX [33] Он также поддерживается PlayStation 3 в качестве одного из официальных графических API. [34] (второй — низкоуровневая библиотека libgcm ) с Cg от Nvidia вместо GLSL. [35] PlayStation 3 также включает в себя несколько функций версии OpenGL ES 2.0.
OpenGL ES 1.1
[ редактировать ]Версия OpenGL ES 1.1 поддерживается:
- Андроид 1.6
- Apple iOS для iPad , iPhone и iPod Touch
- Серия операционных систем RIM BlackBerry 5.0 [37] (только модели BlackBerry Storm 2 , BlackBerry Curve 8530 и более поздние имеют необходимое оборудование [38] )
- BlackBerry PlayBook
- БлэкБерри ББ10
- Различные телефоны Nokia , такие как Nokia N95, N93, N93i и N82.
- Palm webOS с использованием комплекта разработки подключаемых модулей. [39]
- Nintendo 3DS [40]
OpenGL ES 2.0
[ редактировать ]При поддержке:
- Платформа Android, начиная с Android 2.0 до NDK и Android 2.2 до Java. [41]
- AmigaOS на AmigaOne с Warp3D Nova и совместимой Radeon HD . видеокартой
- Apple iOS 5 или новее в iPad , iPad Mini , iPhone 3GS или новее, а также iPod Touch 3-го поколения или новее
- Устройства BlackBerry с BlackBerry OS 7.0 и Blackberry 10 , а также BlackBerry PlayBook
- Собственный клиент Google
- Intel HD Graphics 965G/X3000 и выше (Linux) [42]
- Nvidia (Android), Curie NV40+: Linux, Windows [43]
- Различные телефоны Nokia (например, на базе Symbian ^3 Nokia N8 , MeeGo на базе Nokia N9 и Maemo) . на базе Nokia N900 [44] )
- Palm webOS с использованием комплекта разработки подключаемых модулей [39]
- консоль Пандора
- Малиновый Пи
- Одроид
- Различные мобильные телефоны Samsung (например, Wave )
- Веб-браузеры ( WebGL )
- Консоль Zero GCW
- PlayStation Vita Портативная консоль
- PlayStation 4 Консоль
OpenGL ES 3.0
[ редактировать ]При поддержке:
- Android начиная с версии 4.3 на устройствах с соответствующим оборудованием и драйверами, включая:
- Нексус 7 (2013)
- Нексус 4
- Нексус 5
- Нексус 10
- HTC Баттерфляй S
- HTC One / Один Макс
- LG G2
- LG G Pad 8.3
- Самсунг Галакси J5
- Самсунг Галакси Дж5 (2016)
- Samsung Galaxy S4 (версия Snapdragon)
- Самсунг Галакси С5
- Самсунг Галакси Ноут 3
- Samsung Galaxy Note 10.1 (выпуск 2014 г.)
- Сони Иксперия М
- Сони Иксперия З /ЗЛ
- Сони Иксперия З1
- Сони Иксперия З Ультра
- Планшет Sony Xperia Z
- iOS начиная с версии 7, на устройствах, в том числе:
- ОС BlackBerry 10, начиная с версии 10.2, на устройствах, в том числе:
Поддерживается некоторыми последними версиями этих графических процессоров: [46] [47]
- Adreno Серии 300 и 400 ( Android , BlackBerry 10 , Windows10, Windows RT )
- Серия Mali T600 и более поздние версии (Android, Linux , Windows 7)
- PowerVR Series6 ( iOS , Linux)
- Виванте (Android, OS X 10.8.3, Windows 7)
- Nvidia (Android), Tesla G80+: Linux, Windows 7+
- Intel HD Graphics Sandy Bridge и выше (Linux) [42]
- AMD Terascale и актуальная GCN-архитектура (Windows, Linux)
- LLVMpipe и Softpipe: программные драйверы в Mesa [43]
- VIRGL: виртуальный драйвер для виртуальных машин 2018 года с Mesa 18.1 (см. Mesamatrix.net)
OpenGL ES 3.1
[ редактировать ]Поддерживается Windows, Linux, Android (начиная с версии 5.0) на устройствах с соответствующим оборудованием и драйверами. [48] включая:
- Адрено 400 серия [49] [50]
- Серия Adreno 500 (Mesa 18.1 для Linux и Android)
- AMD Terascale и актуальная GCN-архитектура (Windows, Linux (r600, radeonSI))
- Графика Intel HD для серии Intel Atom Z3700 (Android)
- Графика Intel HD для Intel Celeron серий N и J (Android)
- Графика Intel HD для процессоров Intel Pentium серий N и J (Android)
- Intel HD Graphics Haswell и выше (Linux Mesa: предыдущий Ivy Bridge почти без трафаретного текстурирования) [42]
- Mali T6xx (мидгард) серии и далее [51] (Андроид, Линукс)
- Nvidia GeForce серии 400 и более поздние версии (Windows, Linux)
- NVIDIA Tegra K1 (Android, Linux)
- Нвидиа Тегра Х1 (Андроид)
- PowerVR Series 6, 6XE, 6XT, 7XE и 7XT (Linux, Android)
- Vivante серии GC2000 и более поздние версии (дополнительно для GC800 и GC1000) [52]
- panfrost: поддержка panfrost ARM (Linux Mesa 22.0)
- v3d: драйвер для Broadcom VideoCore в Mesa (Linux)
- Малина Пи 4 и 5
- VIRGL: виртуальный драйвер для виртуальных машин 2018 года с Mesa 18.1 (см. Mesamatrix.net)
- LLVMpipe: программный драйвер в Mesa 20.2 (Linux)
- softpipe: программный драйвер в Mesa 20.3 (Linux)
- Zink: драйвер эмуляции в Mesa 21.1 (Linux)
- d3d12: драйвер Linux WSL2 для Microsoft 10+ (Mesa 22.0)
- Графика Apple M1 и M2 в Fedora Asahi Remix (Linux)
Пакет расширений Android
[ редактировать ]Пакет расширений Android (AEP) — это набор расширений OpenGL ES 3.1, объединенных в одно расширение, представленное Google в 2014 году. Это позволяет приложениям использовать все функции набора расширений, проверяя при этом только наличие одинокий. AEP был официально добавлен в Android Lollipop, чтобы предоставить дополнительные функции, такие как тесселяция, по сравнению с тем, что официально было в версии GLES 3.1. Обновление OpenGL ES 3.2 в основном состоит из дополнений AEP, которые уже присутствуют в настольном OpenGL. [53]
OpenGL ES 3.2
[ редактировать ]OpenGL ES 3.2, включающий пакет расширений Android (AEP), «может похвастаться небольшим количеством улучшений по сравнению с прошлогодним OpenGL ES 3.1. Оба используют аналогичные функции AEP. Благодаря AEP оборудование, совместимое с OpenGL ES 3.2, будет поддерживать тесселяцию для дополнительная детализация геометрии, новые шейдеры геометрии, сжатие текстур ASTC для меньшего использования пропускной способности памяти, цели рендеринга с плавающей запятой для высокоточных вычислительных процессов и новые функции отладки для разработчиков. Эти высококлассные функции уже присутствуют в полной спецификации OpenGL 4 группы. ." [54] [3]
Поддерживается Windows, Linux, Android (возможно, начиная с версии 6.0, требуется Vulkan 7.0+ 1.0 и OpenGL ES 3.2) на устройствах с соответствующим оборудованием и драйверами, включая:
- Adreno 420 и новее (Android, Linux (freedreno))
- Архитектура AMD GCN (Windows, Linux (Mesa 18.2 с radeonSI))
- Intel HD Graphics Skylake и выше (Linux) [42]
- Mali-T760 и новее (Android, Linux)
- Серия Nvidia GeForce 400 (Fermi) и новее (Windows, Linux) [55]
- VIRGL: виртуальный драйвер для виртуальных машин 2018 года с Mesa 18.1 (см. Mesamatrix.net)
- LLVMpipe: программный драйвер в Mesa 20 (Linux)
- Zink: драйвер эмуляции Vulkan в Mesa 21.2 (Linux)
Прекращение поддержки на платформах Apple
[ редактировать ]OpenGL ES (и OpenGL) был признан устаревшим в операционных системах Apple в пользу собственного собственного Metal графического API , но все еще работал как минимум до iOS 12 . [56]
Будущее
[ редактировать ]В настоящее время не планируется выпуск новой базовой версии OpenGL ES, поскольку внедрение Vulkan считается, что заменит его во встроенных и мобильных приложениях. Разработка расширений OpenGL ES продолжается с 2017 года. [57]
Совместимость с OpenGL
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( сентябрь 2014 г. ) |
Было создано несколько библиотек для эмуляции вызовов OpenGL с использованием GL ES:
- Nvidia с двумя пунктами предлагает лицензированную библиотеку BSD под названием Regal, первоначально созданную Кэссом Эвериттом. Последний раз оно обновлялось в 2016 году. [58] Regal используется, например, компанией Google NaCl . [59]
- GL4ES , лицензированный MIT, эмулирует OpenGL 2.1/1.5 с использованием GL ES 2.0/1.1. Он основан на глшиме. [60]
См. также
[ редактировать ]- Direct3D — Windows API для высокопроизводительной 3D-графики с аппаратной поддержкой 3D-ускорения.
- DirectX — Windows API для решения задач, связанных с графикой и видео.
- Metal — низкоуровневая высокопроизводительная графическая библиотека с ускорением 3D для платформ Apple.
- OpenSL ES — API для аудио во встроенных системах, разработанный Khronos Group.
- ANGLE (программное обеспечение) — библиотека, разработанная Google для преобразования вызовов OpenGL ES в вызовы DirectX или Vulkan.
Ссылки
[ редактировать ]- ^ «Хронос расширяет сферу применения 3D-экосистемы открытого стандарта» . 10 августа 2015 г.
- ^ «Обзор OpenGL ES» . Группа компаний «Хронос». 19 июля 2011 г.
- ^ Jump up to: а б «Состояние Союза API 3D-графики: SIGGRAPH 2015» (PDF) . Хронос .
В 2015 году промышленность поставит >1,7 миллиарда устройств
- ^ Грушка, Джоэл (4 марта 2015 г.). «Еще не умер: AMD Mantle поддерживает новый Vulkan API и усилия по виртуальной реальности» . ЭкстримТех . Зифф Дэвис.
- ^ «Какие версии GLSL я могу использовать в OpenGL ES 2.0?» . Переполнение стека.
- ^ https://www.khronos.org/registry/OpenGL/specs/es/1.0/opengles_spec_1_0.pdf [ только URL-адрес PDF ]
- ^ http://developer.amd.com/wordpress/media/2012/10/GDC06-GLES_Tutorial_Day-Munshi-OpenGLES_Overview.pdf [ только URL-адрес PDF ]
- ^ https://www.khronos.org/registry/OpenGL/specs/es/1.1/es_full_spec_1.1.pdf [ только URL-адрес PDF ]
- ^ «переполнение стека: glGenFramebuffersOES против glGenFramebuffers?» . Проверено 19 апреля 2022 г.
- ^ «Пресс-релизы Хроноса — OpenGL ES 2.0» . Хронос.орг. 05.03.2007. Архивировано из оригинала 28 декабря 2010 г. Проверено 23 декабря 2010 г.
- ^ Эдвард Энджел, Дэйв Шрейнер, Интерактивная компьютерная графика: нисходящий подход с OpenGL на основе шейдеров , 6-е издание, стр. XXI-XXII, ISBN 978-0-13-254523-5
- ^ «Язык шейдеров OpenGL® ES» (PDF) . Хронос.орг . Проверено 16 февраля 2013 г.
- ^ «Графическая система OpenGL(R): спецификация (версия 4.1 (основной профиль)» (PDF) , 25 июля 2010 г.
- ^ https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf [ только URL-адрес PDF ]
- ^ «OpenGL© ES – Спецификация общего профиля 2.0.25 (Спецификация различий)» (PDF) . 2 ноября 2010 г.
- ^ Jump up to: а б «Руководство по программированию OpenGL ES 3.0» (PDF) . Пирсон Эдьюкейшн, Инк . Проверено 18 апреля 2022 г.
- ^ «Реестр Khronos OpenGL ES — The Khronos Group Inc» . Реестр.khronos.org .
- ^ «Khronos выпускает спецификацию OpenGL ES 3.0, чтобы вывести мобильную 3D-графику на новый уровень» . Хронос. 06 августа 2012 г. Проверено 6 августа 2012 г.
- ^ «WebGL: 2D и 3D-графика для Интернета» . Мозилла . Проверено 30 июня 2023 г.
- ^ «Спецификация WebGL 2.0» . Реестр.khronos.org .
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf [ только URL-адрес PDF ]
- ^ «Спецификация GLSL ES 3.0» (PDF) . Хронос . Проверено 30 июня 2023 г.
- ^ «Реестр Khronos OpenGL ES — The Khronos Group Inc» . Реестр.khronos.org .
- ^ «Хронос выпускает спецификацию OpenGL ES 3.1» . Хронос.орг. 17 марта 2014 г. Проверено 17 марта 2014 г.
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.1/es_spec_3.1.pdf [ только URL-адрес PDF ]
- ^ «Реестр Khronos OpenGL ES — The Khronos Group Inc» . Реестр.khronos.org .
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/es_spec_3.2.pdf [ только URL-адрес PDF ]
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.pdf [ только URL-адрес PDF ]
- ^ «OpenGL следующего поколения становится Vulkan: опубликованы дополнительные подробности» .
- ^ «Платформа Android» . Android-разработчики .
- ^ «Информация о продукте Symbian OS версии 8.0» . 30 марта 2008 г. Архивировано из оригинала 30 марта 2008 г. Проверено 30 марта 2008 г.
- ^ Дудер, Джанель (9 декабря 2022 г.). «OpenGL ES — Разработка игр для Symbian» . 25 лет программирования . Проверено 14 января 2023 г.
- ^ «Использование OpenGL ES» . Платформа разработки программного обеспечения QNX (v6.5.0) . QNX . Проверено 8 января 2011 г.
- ^ «Демо OpenGL ES в формате PPT» . 21 ноября 2021 г.
- ^ «Презентация OpenGL ES/PSGL в формате PPT» . Сони . Хронос. 21 ноября 2021 г.
- ^ «OpenGL ES SDK доступен для Nokia 6630» . Форумы Хроноса . 22 сентября 2004 г. Проверено 14 января 2023 г.
- ^ «Новое в этой бета-версии» . Примечания к выпуску — Java-приложение BlackBerry . Исследования в движении . Архивировано из оригинала 2 декабря 2009 г. Проверено 8 декабря 2009 г.
- ^ Ко, Дамиан (29 ноября 2009 г.). «Чего ожидать от смартфонов BlackBerry» . CNET Азия . Архивировано из оригинала 13 декабря 2009 г. Проверено 8 декабря 2009 г.
- ^ Jump up to: а б «ПДК – Обзор» . Центр разработчиков HP Palm. Архивировано из оригинала 1 января 2011 г. Проверено 23 декабря 2010 г.
- ^ «DMP объявляет о выпуске PICA 200, совместимого с OpenGL ES 1.1, принятого Nintendo» . 21 июня 2010 г. Проверено 2 июня 2013 г.
- ^ «Характеристики Android 2.2» . 01 июля 2010 г. Архивировано из оригинала 11 октября 2010 г.
- ^ Jump up to: а б с д «Расширения и возможности Mesa OpenGL» . People.freedesktop.org .
- ^ Jump up to: а б «Расширения и возможности Mesa OpenGL» . People.freedesktop.org .
- ^ «Программное обеспечение Maemo - Nokia > Мобильный компьютер Nokia N900 > Технические характеристики» . Корпорация Нокиа. Архивировано из оригинала 29 октября 2009 года . Проверено 12 января 2010 г.
- ^ «iOS 8 для разработчиков» . Разработчик Apple.
- ^ «Продукты, соответствующие Хроносу» . 21 ноября 2021 г.
- ^ Саг, Аншель (11 апреля 2013 г.). «Состояние OpenGL ES 3.0: у кого что есть» . Светлая сторона новостей . Архивировано из оригинала 15 июня 2013 г. Проверено 22 декабря 2015 г.
- ^ «Продукты, соответствующие OpenGL ES3.1» . Проверено 11 августа 2014 г.
- ^ «Графические процессоры Adreno™» . Квалкомм . Проверено 11 августа 2014 г.
- ^ «GL ES 3.1 на Adreno 3xx?» . Проверено 11 августа 2014 г.
- ^ «Исследована архитектура Мали Мидгарда от ARM» . АнандТех . Проверено 11 августа 2014 г.
- ^ «Vivante Vega Cores для 3D» . Жить . Проверено 10 декабря 2014 г.
- ^ «Хронос дебютирует с OpenGL ES 3.2 и новыми расширениями GL, но на этой неделе не будет Vulkan» . 10 августа 2015 года . Проверено 11 августа 2015 г.
- ^ «OpenGL ES 3.2 и Vulkan – все, что вам нужно знать» . Администрация Андроида . 15 августа 2015 г. Проверено 22 декабря 2015 г.
- ^ «NVIDIA выпускает 358.50 драйверов Game Ready для Star Wars Battlefront» . АнандТех . Проверено 7 октября 2015 г.
- ^ Apple Inc. «Что нового в iOS — разработчик Apple» . разработчик.apple.com . Проверено 7 августа 2018 г.
Приложения, созданные с использованием OpenGL ES, будут продолжать работать в iOS 12, но OpenGL ES устарел в iOS 13.
- ^ Хронос. «Вулкан, OpenGL и OpenGL ES» (PDF) . www.khronos.org . Проверено 24 апреля 2020 г.
- ^ «p3/regal: Regal для OpenGL» . Гитхаб. 18 октября 2021 г.
- ^ Маккатчан, Джон (7 сентября 2012 г.). «Подробно: внедрение Regal OpenGL в собственный клиент» . Гамасутра.
- ^ «GL4ES — драйвер OpenGL для оборудования GLES» . Гитхаб .
Дальнейшее чтение
[ редактировать ]- Гинзбург, Дэн; Пурномо, Будириджанто; Шрайнер, Дэйв; Мунши, Аафтаб (2014). Руководство по программированию OpenGL ES 3.0 . Аддисон-Уэсли Профессионал. ISBN 978-0-321-93388-1 .
- Пулли, Кари; Аарнио, Томи; Миеттинен, Вилле; Роймела, Киммо и Ваарала, Яни (2007). Мобильная 3D-графика с OpenGL ES и M3G . Морган Кауфманн. ISBN 978-0-12-373727-4 .
- Астл, Дэйв и Дурнил, Дэвид (2004). Разработка игр OpenGL ES . Курс Технологии ПТР. ISBN 1-59200-370-2 .
- Пулли, Кари; Аарнио, Томи; Роймела, Киммо и Ваарала, Яни (2005). «Проектирование графических интерфейсов программирования для мобильных устройств». IEEE Компьютерная графика и приложения . 25 (6). IEEE CG&A 2005: 66–75. дои : 10.1109/MCG.2005.129 . ПМИД 16315479 . S2CID 8177273 .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Публичное отслеживание ошибок
- Компании, соответствующие OpenGL ES
- Публичные форумы
- Список устройств, совместимых с OpenGL ES
- Домашняя страница OpenGL
- Эмулятор OpenGL ES 1.1 и 2.0 от ARM Link непригоден для использования. Не нажимайте.
- Эмулятор OpenGL ES 3.0 от ARM Link непригоден для использования. Не нажимайте.