OpenGL® ES - это свободный, кроссплатформенный API предназначенный для работы с 2D и 3D графикой на различных "встраевыемых" устройствах (игровых консолях, телефонах, коммуникаторах, КПК...). OpenGL ES представляет собой функциональную и продуманную выжимку из OpenGL для настольных ПК и обеспечивает гибкий низкоуровневый интерфейс между софтом и графическим акселератором устройства. OpenGL ES включает в себя профили для систем, поддерживающих работу с вещественными числами с плавающей и фиксированной точкой, а также EGL™ спецификацию, которая обеспечивает взаимодействие графического API с оконной надстройкой (прошивкой либо ОС) установленной на устройстве системы.
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 поддерживает полностью программируемую 3D графику. Он основан на спецификации OpenGL 2.0, обеспечивает программируемый 3D-графический конвейер с возможностью создания шейдеров и программных объектов с использованием языкаOpenGL ES Shading Language.
OpenGL SC основан на спецификации OpenGL 1.3 и предназначен для использования на рынке критических с точки зрения безопасности данных устройств (военная техника, авиация).
OpenGL® ES - это облегченный низкоуровневый API, основанный на широко распространенной библиотеке OpenGL. OpenGL ES выступает посредником между приложением и аппаратным или программным графическим движком.
Использование единого стандарта для работы с 3D графикой позволяет упростить и систематизировать процесс разработки графических приложений и игр для различных мобильных и встраевыемых платформ. Поскольку OpenGL ES основан на OpenGL, вам не понадобится изучать новую технологию, что значительно упрощает портирование и адаптацию приложений под различные устройства.
Стремясь охватить как можно большее количество встраиваемых устройств, разработчики OpenGL ES выделили две ветки "1.X" и "2.X", которые существуют и развиваются параллельно. Ветка "1.X" разработана для fixed function 3D ускорителей нового поколения. Ветка "2.X" позволяет работать с программируемым 3D конвейером.
Спецификация 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). Принудительные расширения должны быть обязательно реализованы производителем устройств.
OpenGL ES также включает спецификацию уровня общего интерфейса устройства (EGL). Этот независимый от платформы уровень может быть добавлен в OpenGL ES производителем устройства. Производитель также может добавить собственный, заточенный под данную платформу уровень
Источник:http://www.khronos.org/opengles/
Перевод:aRixx