Подтвердить что ты не робот

В чем разница между OpenGL ES 2.0 и OpenGL ES 3.0

Я хочу знать, в чем разница между OpenGL ES 2.0 и OpenGL ES 3.0.

В чем основное преимущество OpenGL ES 3.0?

4b9b3361

Ответ 1

Я думаю, было бы лучше прочитать раздел "Версия 3.0 и раньше → Новые функции" на официальном specs

И он обратно совместим с ES 2.0.

Ответ 2

Прямо от Wikipedia:

Спецификация OpenGL ES 3.0 была публично опубликована в августе 2012 года. OpenGL ES 3.0 обратно совместим с OpenGL ES 2.0, позволяя приложениям постепенно добавлять новые визуальные функции в приложения.

Новые функциональные возможности в спецификации OpenGL ES 3.0 включают в себя:

  • несколько улучшений конвейера рендеринга для ускорения расширенных визуальных эффектов, включая: окклюзионные запросы, преобразование обратной связи, инстансное рендеринг и поддержку для четырех или более целей рендеринга,
  • высокое качество сжатия ETC2/EAC как стандартной функции, устраняя необходимость в различном наборе текстур для каждой платформы,
  • новая версия языка затенения GLSL ES с полной поддержкой целых и 32-разрядных операций с плавающей запятой;
  • значительно улучшена функциональность текстурирования, включая гарантированную поддержку текстур с плавающей запятой, 3D-текстур, текстур глубины, текстур вершин, текстур NPOT, текстур R/RG, неизменяемых текстур, текстур 2D-массивов, swizzles, LOD и зажима уровня mip, бесшовных кубических карт и объекты сэмплера,
  • обширный набор требуемых форматов текстур и рендеринга в явном виде, уменьшающих изменчивость реализации и упрощающий перенос переносимых приложений.

Ответ 3

В целом изменения увеличивают гибкость с большими буферами, больше форматов, более униформу и т.д. Дополнительные возможности, такие как инстанс-рендеринг, пиксельные буферные объекты и окклюзионные запросы, предоставляют возможности для оптимизации. В зависимости от вашей платформы это может быть революционным, однако многие из ключевых функций уже были расширениями на таких платформах, как iOS.

Для моей работы лично наиболее значимые изменения:

  • объекты массива vertex
  • инстантированный рендеринг
  • Форматы сжатия текстур ETC2/EAC (ранее на Android каждый производитель карт поддерживал только собственные форматы текстур)

Вот список изменений, описанных в спецификации, связанной с Алексеем:

Новые функции OpenGL ES 3.0 включают в себя:

  • Язык затенения OpenGL ES 3.00
  • преобразовать обратную связь 1 и 2 (с ограничениями)
  • однородные объекты буфера, включая массивы блоков
  • объекты массива vertex
  • объекты сэмплера
  • объекты и заборы синхронизации
  • объекты пиксельного буфера
  • отображение поддиапазона буфера
  • буферный объект для копирования экземпляров объекта 314
  • запросы булевых окклюзий, включая консервативный режим
  • инстантированный рендеринг через шейдерную переменную и/или атрибут атрибута вершины
  • несколько целей рендеринга
  • 2D-массив и 3D-текстуры
  • упрощенная спецификация хранения текстур
  • Тексты R и RG
  • текстура swizzles
  • бесшовные карты кубов
  • текстуры без силы двух текстур с поддержкой полного режима переноса и mipmapping
  • текстуры LOD-зажимы и смещение основания уровня mipmap и максимальный зажим
  • не менее 32 текстур, по меньшей мере 16 для фрагментов и вершинных шейдеров
  • 16-разрядные (с фильтрацией) и 32-битные (без фильтрации) текстуры с плавающей запятой
  • 32-разрядные, 16-битные и 8-битные знаковые и беззнаковые целочисленные рендеринг-буферы, текстуры и атрибуты вершин
  • 8-битные sRGB-текстуры и фреймбуферы (без смешанного рендеринга RGB/sRGB)
  • 11/11/10 текстуры RGB с плавающей точкой.
  • общие экспоненциальные текстуры RGB 9/9/9/5
  • 10/10/10/2 беззнаковые нормализованные и ненормализованные целые текстуры
  • 10/10/10/2 подписанные и неподписанные нормированные атрибуты вершин
  • 16-битные атрибуты вершин с плавающей запятой
  • 8-разрядная стандартная нормализованная текстура
  • Форматы сжатия текстур ETC2/EAC
  • размерные форматы внутренней текстуры с гарантией минимальной точности
  • multisample renderbuffers
  • 8-битные беззнаковые нормированные рендеринг-буферы
  • текстуры глубины и теневое сравнение
  • 24-битные рендеринг-буферы и текстуры
  • 24/8 глубинные/трафаретные рендерингбуферы и текстуры
  • 32-битовая глубина и 32F/8 глубинные/трафаретные рендерингбуферы и текстуры.
  • растяжки (с ограничениями)
  • подсказки аннулирования фреймбуфера
  • примитивный перезапуск с фиксированным индексом
  • индексы целочисленных элементов без знака с не менее чем 24 используемыми битами
  • команда рисования, позволяющая специфицировать диапазон доступных элементов
  • возможность прикреплять любой уровень mipmap к объекту framebuffer.
  • минимальные/максимальные уравнения смешивания
  • программные двоичные файлы, включая запросы двоичных файлов из связанных программ GLSL
  • обязательный онлайн-компилятор
  • неквадратные и транспонируемые однородные матрицы
  • состояние сохранения дополнительных пикселей
  • индексированные строки строковых запросов