12 ответов:
два из наиболее существенных различий между OpenGL ES и OpenGL являются удаление glBegin ... семантика вызова glEnd для примитивного рендеринга (в пользу массивов вершин) и введение типов данных с фиксированной точкой для координат вершин и атрибутов для лучшей поддержки вычислительных возможностей встроенных процессоров, которым часто не хватает FPU
посмотреть здесь: OpenGL_ES
OpenGL ES-это api opengl для встроенных систем. Это проще, чем обычный opengl с точки зрения количества функций api, но может быть сложнее использовать, так как вам придется использовать буферы вершин и писать больше шейдеров.
когда вы используете обычный opengl, вы можете использовать glBegin и glEnd для включения примитивов геометрии, которые вам нужно нарисовать, но при использовании Opengl ES вам придется использовать буферы вершин. Я думаю, это для проблем производительности.
в настоящее время, существует две версии Opengl ES, версия 1.1 может поддерживать только фиксированный конвейер рендеринга, а версия 2.0 поддерживает шейдер glsl. Однако он не имеет фиксированного конвейера рендеринга. Другими словами, вам придется написать свой собственный шейдер для всего.
Opengl ES главным образом использовано на сотовых телефонах и паутине (webgl). Согласно спецификации, ваш настольный драйвер opengl может поддерживать все API opengl es.
Так же, как добавить, что OpenGL 3.3 и OpenGL ES 2.0 в основном совместимы, используя подмножество функций OpenGL 3.3. Мой пользовательский движок C++ использует те же вызовы API, с несколькими определениями, для Android/IOS/Windows/OSX/Linux.
среди ключевых отличия:
- отсутствие поддержки геометрических шейдеров
- нет мин/макс смешивания (может быть расширение для этого)
- нет списка Quad примитивный
- более ограниченная текстура форматы (особенно в отношении с плавающей запятой)
- glGetTexImage недоступен
- нет обратной связи преобразования, то же самое для нескольких других расширенных функций
есть также много других различий, но это охватывает несколько важных из них.
обзор OpenGL ES смотрите здесь:http://www.khronos.org/opengles/
короче говоря, ES является подмножеством Open GL для "встроенных систем". Конкретные различия будут зависеть от версий и наборов функций, которые вы сравниваете.
OpenGL ES означает, что открытая графическая библиотека для встроенных систем (OpenGL ES или GLES) является подмножеством интерфейса прикладного программирования (API) для рендеринга компьютерной графики OpenGL для рендеринга 2D и 3D компьютерной графики, например, используемой видеоиграми, обычно аппаратно ускоренной с использованием графического процессора (GPU). Он предназначен для встроенных систем, таких как смартфоны, компьютерные планшеты, игровые приставки и КПК.
официальный сайт OpenGL|ES: http://www.opengl.org/
вы также можете получить дополнительную информацию из wiki:http://en.wikipedia.org/wiki/OpenGL_ES
реестр OpenGL ES содержит подробные различия API между OpenGL ES и соответствующей версией OpenGL:
однако, нет документа, содержащего различия для OpenGL ES 3.0.
Я думаю, что вы получите лучший ответ, если спросите "каковы различия между OpenGL и OpenGL ES ".
существуют глубокие различия между OpenGL ES 1.1 и ES 2.0, OpenGL 1.5 и 2.0 и OpenGL 3.0 и 4.0.
как другие описали ES был написан для встроенных систем. Он также представляет собой первую "уборку дома" спецификации GL с момента ее создания. У OpenGL было много способов сделать то же самое (например, вы могли бы нарисовать quad / rect two разные способы и Блит пиксельное изображение двумя разными способами и т. д.). ES проще, чем OpenGL с меньшим количеством функций в качестве общего утверждения, потому что он предназначен для менее сложного оборудования.
Я призываю вас не смотреть на OpenGL ES 1.1, поскольку это прошлое и не представляет, как OpenGL или OpenGL ES движется архитектурно в будущем.
терминология и версии довольно запутанные (особенно для новичков). Вот ссылка, которая дает обзор достаточно хорошо. Посмотрим, поможет ли это.
основное различие между ними заключается в том, что OpenGL ES предназначен для встроенных систем, таких как смартфоны, а OpenGL-для настольных компьютеров. На уровне кодирования OpenGL ES не поддерживает функции фиксированной функции, такие как glBegin/glEnd и т. д... OpenGL может поддерживать конвейер с фиксированной функцией (используя профиль совместимости).
современный ответ, для ES 3.0 по сравнению с OpenGL 4.6, отличается от принятого ответа. Теперь, все материалы фиксированного трубопровода исчезли.
ES, для встроенных систем, является гораздо менее надежным.
OpenGL Это 2D и 3D графика API в результате чего тысячи приложений для широкого спектра компьютерных платформ.
OpenGL ES четко определен подмножеств рабочего стола OpenGL.
OpenGL® ES-это бесплатный кросс-платформенный API для полнофункциональной 2D и 3D графики на встроенных системах, включая консоли, телефоны, приборы и транспортные средства. Он состоит из четко определенных подмножеств рабочего стола OpenGL, ...
посмотреть это ссылке.
П. С.
WebGL разделяет спецификацию с OpenGL ES, т. е. если вы изучили desktop OpenGL, легко узнать другие(OpenGL ES, WebGL).
просто говоря, opengl-это настольная версия, а opengl es - для встроенных систем, таких как мобильные телефоны, где есть ограничения памяти и производительности больше, чем у компьютеров. opengl es будет сложнее использовать.
Comments