OpenGL ES (Embedded Systems) является урезанной версией OpenGL. Есть много различий между этими двумя, и если вы хотите углубиться в детали, то вы можете прочитать этот документ 128 спецификации. Но ES - это подмножество OpenGL, поэтому все приложения ES работают на не-ES системах, но не наоборот.
Нет ни одного места, где вы могли бы легко определить, что находится в ES, а что нет. Даже одно определение таково: «OpenGL-ES похож на OpenGL, но без большого количества вещей. Например, нет glBegin или glEnd».
ES не является прямым подмножеством OpenGL, поэтому ваше утверждение о том, что все приложения ES работают в системах, отличных от ES, не соответствует действительности.
Яри Комппа
5
@JariKomppa - это с OpenGL 4.1.
DMan
Хорошая сводка изменений / различий была бы хороша.
Бобобобо
19
Увы, пока ни один из ответов не является ни полным, ни полностью правильным. Действительно, OpenGL-ES делает две вещи, которые не делает OpenGL:
1) он урезает, а затем расширяет API OpenGL, чтобы сделать его подходящим для мобильной платформы. То есть сначала они удаляют API и функции, которые вам действительно не нужны, и обременительны для мобильных реализаций, таких как рендеринг полигонов или использование списков отображения. Затем он делает несколько разумных расширений, чтобы сделать его более полезным для мобильной платформы. Я даже не могу вспомнить пример этого, хотя.
2) он обеспечивает интерфейс для оконного менеджера (и, следовательно, встроенного графического оборудования) мобильной платформы. Эта часть OpenGL-ES, известная как EGL, очень похожа на GLUT на рабочем столе. За исключением того, что у него нет ни одного из тех удобных методов, которые не являются строго необходимыми для этого интерфейса. Таким образом, не существует API для рисования многогранников или сфер (как в GLUT). Но есть, например, API, которые соответствуют GLUT init (), и обратным вызовам DisplayFunc () и ReshapeFunc ().
EGL не является частью OpenGL ES. Это отдельная вещь. Смотрите спецификацию Он не является обязательной частью OpenGL ES и почти не упоминается, за исключением того, что он может существовать в вашей системе, но в противном случае настройка окна и т. Д.
Выходит
7
На Android доступно две версии OpenGL ES:
OpenGL ES 1.x (1.0 или 1.1): подмножество OpenGL 1.5 без непосредственных команд
нет glBegin / glEnd
нет поддержки Quad или Polygon
OpenGL ES 2.0: подмножество OpenGL 3.X без фиксированного конвейера
вершинные шейдеры
фрагментные шейдеры
геометрические шейдеры недоступны
Внимание, OpenGL ES 2.0 не совместим с OpenGL ES 1.X!
Почти все телефоны Android имеют графический процессор OpenGL 1.X и большинство из них имеют 2.0. OpenGL ES 2.0 доступен только с Android 2.x или новее.
Ответы:
OpenGL ES (Embedded Systems) является урезанной версией OpenGL. Есть много различий между этими двумя, и если вы хотите углубиться в детали, то вы можете прочитать этот документ 128 спецификации. Но ES - это подмножество OpenGL, поэтому все приложения ES работают на не-ES системах, но не наоборот.
Нет ни одного места, где вы могли бы легко определить, что находится в ES, а что нет. Даже одно определение таково: «OpenGL-ES похож на OpenGL, но без большого количества вещей. Например, нет glBegin или glEnd».
источник
Увы, пока ни один из ответов не является ни полным, ни полностью правильным. Действительно, OpenGL-ES делает две вещи, которые не делает OpenGL:
1) он урезает, а затем расширяет API OpenGL, чтобы сделать его подходящим для мобильной платформы. То есть сначала они удаляют API и функции, которые вам действительно не нужны, и обременительны для мобильных реализаций, таких как рендеринг полигонов или использование списков отображения. Затем он делает несколько разумных расширений, чтобы сделать его более полезным для мобильной платформы. Я даже не могу вспомнить пример этого, хотя.
2) он обеспечивает интерфейс для оконного менеджера (и, следовательно, встроенного графического оборудования) мобильной платформы. Эта часть OpenGL-ES, известная как EGL, очень похожа на GLUT на рабочем столе. За исключением того, что у него нет ни одного из тех удобных методов, которые не являются строго необходимыми для этого интерфейса. Таким образом, не существует API для рисования многогранников или сфер (как в GLUT). Но есть, например, API, которые соответствуют GLUT init (), и обратным вызовам DisplayFunc () и ReshapeFunc ().
источник
На Android доступно две версии OpenGL ES:
Внимание, OpenGL ES 2.0 не совместим с OpenGL ES 1.X!
Почти все телефоны Android имеют графический процессор OpenGL 1.X и большинство из них имеют 2.0. OpenGL ES 2.0 доступен только с Android 2.x или новее.
источник