OpenGL ES - Стандарт 3D графики для встраевыемых устройств

OpenGL® ES - это свободный, кроссплатформенный API предназначенный для работы с 2D и 3D графикой на различных "встраевыемых" устройствах (игровых консолях, телефонах, коммуникаторах, КПК...). OpenGL ES представляет собой функциональную и продуманную выжимку из OpenGL для настольных ПК и обеспечивает гибкий низкоуровневый интерфейс между софтом и графическим акселератором устройства. OpenGL ES включает в себя профили для систем, поддерживающих работу с вещественными числами с плавающей и фиксированной точкой, а также EGL™ спецификацию, которая обеспечивает взаимодействие графического API с оконной надстройкой (прошивкой либо ОС) установленной на устройстве системы.

OpenGL ES 1.X

OpenGL ES 1.X предназначен для работы на функционально ограниченных устройствах. Он позволяет добиться неплохой скорости работы и качества картинки. OpenGL ES 1.1 опирается на спецификацию OpenGL 1.5, поддерживает API для использования аппаратного ускорения, полностью совместим с версией 1.0. OpenGL ES 1.1 обеспечивает расширенные по сравнению с предыдущей версией возможности, улучшенное качество изображения, кроме того, он заточен для использования на устройствах с ограниченными ресурсами (память, электропитание).OpenGL ES 1.1 Extension Pack представляет собой набор дополнительных расширений, направленных на улучшение качества картинки и производительности.

OpenGL ES 2.X

OpenGL ES 2.X поддерживает полностью программируемую 3D графику. Он основан на спецификации OpenGL 2.0, обеспечивает программируемый 3D-графический конвейер с возможностью создания шейдеров и программных объектов с использованием языкаOpenGL ES Shading Language.

OpenGL ES-SC 1.0

OpenGL SC основан на спецификации OpenGL 1.3 и предназначен для использования на рынке критических с точки зрения безопасности данных устройств (военная техника, авиация).

OpenGL ES в деталях

OpenGL® ES - это облегченный низкоуровневый API, основанный на широко распространенной библиотеке OpenGL. OpenGL ES выступает посредником между приложением и аппаратным или программным графическим движком.

Использование единого стандарта для работы с 3D графикой позволяет упростить и систематизировать процесс разработки графических приложений и игр для различных мобильных и встраевыемых платформ. Поскольку OpenGL ES основан на OpenGL, вам не понадобится изучать новую технологию, что значительно упрощает портирование и адаптацию приложений под различные устройства.

Достоинства API

  • Широко распространенный, относительно открытый стандарт
    Любой желающий может скачать OpenGL ES спецификацию и свободно использовать ее в своих продуктах. В настоящее время OpenGL единственный независимый графический стандарт, получивший признание и поддержку производителей различных устройств.
  • Компактность и экономичность
    OpenGL ES занимает мало места и требует для работы минимум оперативной памяти. Оптимизирован поток команд/данных. Все это позволяет получать на выходе компактный и эффективный программный код.
  • Незаметное переключение с аппаратного на программный рендеринг
    Хотя OpenGL ES и предназначен для работы с аппаратными ускорителями графики, он может в случае необходимости реализовать запросы в виде подпрограмм, выполняемых непосредственно процессором устройства. Поэтому, если даже сейчас устройство не поддерживает аппаратно какой-нибудь OpenGL запрос, возможно в будущих моделях он будет реализован и Вам не потребуется заново переписывать программу.
  • Расширяемая архитектура
    Новые аппаратные возможности могут быль легко интегрированы в систему с помощью механизма расширений (OpenGL extension). По мере того, как расширение становится широко распространенным, оно включается в ядро OpenGL ES.
  • Простота использования
    Как и OpenGL, OpenGL ES хорошо структурирован и интуитивно понятен.
  • Нет проблем с документацией
    В сети существует огромное количество документации по OpenGL. Работа с OpenGL ES практически не отличается от работы с простым OpenGL

Две ветви развития OpenGL ES

Стремясь охватить как можно большее количество встраиваемых устройств, разработчики OpenGL ES выделили две ветки "1.X" и "2.X", которые существуют и развиваются параллельно. Ветка "1.X" разработана для fixed function 3D ускорителей нового поколения. Ветка "2.X" позволяет работать с программируемым 3D конвейером.

Среда OpenGL ES

Профиль

Спецификация OpenGL ES включает в себя определения нескольких профилей. Каждый профиль представляет собой подмножество настольной версии OpenGL с добавлением нескольких дополнительных OpenGL ES расширений. OpenGL ES профили являются частью большого семейства OpenGL программного интерфейса. Кроме того, профили совместно используют похожий конвейер обработки, структуру команд, и то же самое пространство имен. По мере необходимости могут создаваться расширения, выходящие за рамки настольной версии OpenGL. Расширения спецификации OpenGL ES играют для этого профиля такую же роль, как, например, OpenGL ARB по отношению к OpenGL спецификации. Как правило, расширения OpenGL ES выполняют одну из двух функций: либо они предваряют функциональные возможности, которые производители планируют воплотить в будущем, либо формализируют некоторые специализированные возможности устройства. Профиль состоит из файла-заголовка и link/runtime библиотеки, содержащей команды и лексемы.

В настоящее время спецификация включает в себя только два профиля: Common Profile иSafety Critical Profile.

Common Profile (Общий профиль) ориентирован на широкий и разнообразный рынок развлекательных устройств (телефонов, КПК, игровых консолей, и.т.д.). Он характеризуется экономичностью и заточенностью под игровые платформы.

Safety Critical Profile предназначен для приложений, предъявляющих повышенные требования к безопасности информации. Он подразумевает минимизацию 3D, для упрощения защиты, и поддержку работы с автомобильными и авиационными дисплеями.

Расширения

Реализация OpenGL ES может содержать несколько расширений, которые наращивают функциональные возможности платформы. Профиль OpenGL ES состоит из двух частей: выжимки из настольной версии OpenGL и нескольких специфических расширений. Каждое такое расширение может быть добавлено в профиль либо как основное расширение (core addition), либо как расширение профиля (profile extension). Расширения профиля отличаются от основных тем, что в их команды и лексемы в своих названиях не содержат суффиксов. Расширения профиля делятся на принудительные(required) и дополнительные(optional). Принудительные расширения должны быть обязательно реализованы производителем устройств.

Native Platform Graphics Interface Layer - EGL

OpenGL ES также включает спецификацию уровня общего интерфейса устройства (EGL). Этот независимый от платформы уровень может быть добавлен в OpenGL ES производителем устройства. Производитель также может добавить собственный, заточенный под данную платформу уровень


Источник:http://www.khronos.org/opengles/
Перевод:aRixx




Наши соцсети

Подписаться Facebook Подписаться Вконтакте Подписаться Twitter Подписаться Google Подписаться Telegram

Популярное

Ссылки

Новости [1] [2] [3]... Android/ iOS/ J2ME[1] [2] [3]) Android / Архив

Рейтинг@Mail.ru Яндекс.Метрика
MobiLab.ru © 2005-2018
При использовании материалов сайта ссылка на www.mobilab.ru обязательна