Я хочу знать, в чем разница между OpenGL ES 2.0
и OpenGL ES 3.0
.
В чем основное преимущество OpenGL ES 3.0
?
Я хочу знать, в чем разница между OpenGL ES 2.0
и OpenGL ES 3.0
.
В чем основное преимущество OpenGL ES 3.0
?
Я думаю, было бы лучше прочитать раздел "Версия 3.0 и раньше → Новые функции" на официальном specs
И он обратно совместим с ES 2.0.
Прямо от 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, бесшовных кубических карт и объекты сэмплера,
- обширный набор требуемых форматов текстур и рендеринга в явном виде, уменьшающих изменчивость реализации и упрощающий перенос переносимых приложений.
В целом изменения увеличивают гибкость с большими буферами, больше форматов, более униформу и т.д. Дополнительные возможности, такие как инстанс-рендеринг, пиксельные буферные объекты и окклюзионные запросы, предоставляют возможности для оптимизации. В зависимости от вашей платформы это может быть революционным, однако многие из ключевых функций уже были расширениями на таких платформах, как iOS.
Для моей работы лично наиболее значимые изменения:
Вот список изменений, описанных в спецификации, связанной с Алексеем:
Новые функции 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
- обязательный онлайн-компилятор
- неквадратные и транспонируемые однородные матрицы
- состояние сохранения дополнительных пикселей
- индексированные строки строковых запросов