OpenGL ES против OpenGL - PullRequest
       3

OpenGL ES против OpenGL

77 голосов
/ 23 декабря 2010

Чем отличаются OpenGL ES от OpenGL?

Ответы [ 12 ]

48 голосов
/ 23 декабря 2010

Двумя более существенными различиями между OpenGL ES и OpenGL являются удаление семантики вызова glBegin ... glEnd для примитивного рендеринга (в пользу массивов вершин) и введение типов данных с фиксированной точкой для координат и атрибутов вершин для лучшей поддержки вычислительных возможностей встроенных процессоров, которым часто не хватает FPU

Посмотрите здесь: OpenGL_ES

41 голосов
/ 24 августа 2011

OpenGL ES - это API opengl для встраиваемых систем. Он проще обычного opengl с точки зрения количества функций API, но может быть сложнее в использовании, так как вам придется использовать буферы вершин и писать больше шейдеров.

Когда вы используете обычный opengl, вы можете использовать glBegin и glEnd для включения геометрических примитивов, которые вам нужно нарисовать, но при использовании Opengl ES вам придется использовать буферы вершин. Я думаю, это из-за проблем с производительностью.

В настоящее время существует две версии Opengl ES, версия 1.1 может поддерживать только конвейер фиксированного рендеринга, в то время как версия 2.0 поддерживает шейдер glsl. Однако он не имеет фиксированного конвейера рендеринга. Другими словами, вам придется написать свой собственный шейдер для всего.

Opengl ES в основном используется на мобильных телефонах и в Интернете (webgl). Согласно спецификации, ваш настольный драйвер opengl может поддерживать все opengl es apis.

32 голосов
/ 24 июня 2012

Так же, как добавить, что OpenGL 3.3 и OpenGL ES 2.0 в основном совместимы, используя подмножество функций OpenGL 3.3.Мой пользовательский движок C ++ использует те же вызовы API, с некоторыми определениями, для Android / IOS / Windows / OSX / Linux.

Среди ключевых отличий:

  • отсутствие геометрииподдержка шейдеров
  • без наложения мин / макс (может быть расширение для этого)
  • без примитива Quad List
  • более ограниченные форматы текстур (особенно с плавающей запятой)
  • glGetTexImage недоступен
  • нет обратной связи преобразования, то же самое для некоторых других расширенных функций

Есть также много других отличий, но они охватывают некоторые важные.

6 голосов
/ 17 апреля 2014

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

Официальный веб-сайт OpenGL | ES: http://www.opengl.org/

, вы также можете получить дополнительную информацию из вики: http://en.wikipedia.org/wiki/OpenGL_ES

6 голосов
/ 24 декабря 2010

Просмотрите обзор OpenGL ES здесь: http://www.khronos.org/opengles/

Короче говоря, ES является подмножеством Open GL для "встроенных систем".Конкретные различия будут зависеть от версий и наборов функций, которые вы сравниваете.

5 голосов
/ 04 января 2013

Реестр OpenGL ES содержит подробные API различия между OpenGL ES и соответствующей версией OpenGL:

Однако нет документа, содержащего различия для OpenGL ES 3.0.

4 голосов
/ 10 января 2013

Я думаю, вы получите лучший ответ, если спросите: «В чем разница между OpenGL и OpenGL ES».

Существуют глубокие различия между OpenGL ES 1.1 и ES 2.0, OpenGL 1.5 и 2.0 и OpenGL 3.0 и 4.0.

Как уже описывали другие, ES был написан для встраиваемых систем. Он также представляет первую «уборку дома» в спецификации GL с момента ее создания. У OpenGL было a) много способов сделать одно и то же (например, вы можете нарисовать квадрат / прямоугольник двумя разными способами и отразить пиксельное изображение двумя разными способами и т. Д.). ES проще, чем OpenGL, с меньшим количеством функций, как общее утверждение, потому что он разработан для менее сложного оборудования.

Я настоятельно призываю вас не смотреть на OpenGL ES 1.1, поскольку он в прошлом и не отражает того, как OpenGL или OpenGL ES будут архитектурно двигаться в будущем.

3 голосов
/ 09 июня 2015

Терминология и версии довольно запутанные (особенно для новичков).Вот ссылка, которая дает обзор достаточно хорошо.Посмотрите, поможет ли это.

OpenGL - тогда и сейчас

2 голосов
/ 15 декабря 2015

Основное различие между ними заключается в том, что OpenGL ES предназначен для встраиваемых систем, таких как смартфоны, а OpenGL - для настольных компьютеров.На уровне кодирования OpenGL ES не поддерживает функции с фиксированными функциями, такие как glBegin / glEnd и т. Д. OpenGL может поддерживать конвейер с фиксированными функциями (используя профиль совместимости).

1 голос
/ 25 августа 2017

Современный ответ для ES 3.0 по сравнению с OpenGL 4.6 сильно отличается от принятого ответа. Теперь все вещи с фиксированным конвейером исчезли.

ES для врезанных систем гораздо менее надежен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...