opengl-es opengl-es-2.0 opengl-es-3.0

¿Cuáles son las diferencias entre OpenGL ES 2.0 y OpenGL ES 3.0?



opengl-es opengl-es-2.0 (3)

Quiero saber cuáles son las diferencias entre OpenGL ES 2.0 y OpenGL ES 3.0 .

¿Cuál es la principal ventaja de OpenGL ES 3.0 ?


Creo que sería mejor leer la sección "Versión 3.0 y Antes -> Nuevas características" en las specs oficiales

Y es compatible con versiones anteriores con ES 2.0.


Directamente de Wikipedia :

La especificación de OpenGL ES 3.0 se lanzó públicamente en agosto de 2012. OpenGL ES 3.0 es compatible con OpenGL ES 2.0, lo que permite que las aplicaciones agreguen nuevas características visuales a las aplicaciones.

La nueva funcionalidad en la especificación de OpenGL ES 3.0 incluye:

  • múltiples mejoras en el proceso de representación para permitir la aceleración de efectos visuales avanzados, que incluyen: consultas de oclusión, retroalimentación de transformación, representación en instancias y soporte para cuatro o más objetivos de representación,
  • Compresión de texturas ETC2 / EAC de alta calidad como característica estándar, que elimina la necesidad de un conjunto diferente de texturas para cada plataforma.
  • una nueva versión del lenguaje de sombreado GLSL ES con soporte completo para operaciones de punto flotante de enteros y de 32 bits;
  • Funcionalidad de texturización muy mejorada que incluye soporte garantizado para texturas de punto flotante, texturas 3D, texturas de profundidad, texturas de vértice, texturas NPOT, texturas R / RG, texturas inmutables, texturas de matriz 2D, swizzles, pinzas LOD y mip level, mapas cúbicos y objetos de muestra ,
  • un extenso conjunto de formatos de textura y render-buffer requeridos, de tamaño explícito, que reducen la variabilidad de la implementación y hacen que sea mucho más fácil escribir aplicaciones portátiles.

En general, los cambios aumentan la flexibilidad con búferes más grandes, más formatos, más uniformes, etc. Las características adicionales, como el renderizado por instancias, los objetos de búfer de píxel y las consultas de oclusión, brindan oportunidades de optimización. Dependiendo de su plataforma, podría ser revolucionario, sin embargo, muchas de las características clave ya eran extensiones en plataformas como iOS.

Para mi trabajo personal, los cambios más significativos son:

  • objetos de matriz de vértice
  • representación instanciada
  • Formatos de compresión de textura ETC2 / EAC (Anteriormente, en Android, cada fabricante de tarjetas solo admitía sus propios formatos de textura)

Aquí hay una lista de los cambios descritos en la especificación vinculada a Alexey:

Las nuevas características de OpenGL ES 3.0 incluyen:

  • OpenGL Shading Language ES 3.00
  • transformar retroalimentación 1 y 2 (con restricciones)
  • Objetos de búfer uniformes incluyendo matrices de bloques
  • objetos de matriz de vértice
  • objetos de muestra
  • sincronizar objetos y vallas
  • objetos de almacenamiento de píxeles
  • asignación de subintervalos de búfer
  • objeto de búfer a objeto de búfer copias 314
  • Consultas de oclusión booleana, incluido el modo conservador
  • Representación instanciada, a través de la variable de sombreado y / o divisor de atributo de vértice
  • multiples objetivos de render
  • Matriz 2D y texturas 3D.
  • especificación de almacenamiento de textura simplificada
  • Texturas R y RG
  • textura swizzles
  • mapas de cubos sin costura
  • texturas sin potencia de dos con compatibilidad con el modo de ajuste completo y mipmapping
  • Abrazaderas LOD de textura y desplazamiento de base a nivel de mipmap y pinza máxima
  • al menos 32 texturas, al menos 16 para cada sombreado de fragmentos y vértices
  • Texturas de punto flotante de 16 bits (con filtrado) y de 32 bits (sin filtrado)
  • Decodificadores de enteros, texturas y atributos de vértices enteros sin signo, con signo y sin signo de 32 bits, 16 bits y 8 bits
  • Texturas sRGB de 8 bits y marcos de imágenes (sin renderizado RGB / sRGB mixto)
  • 11/11/10 texturas RGB de punto flotante
  • Exponente compartido RGB 9/9/9/5 texturas
  • 10/10/10/2 texturas enteras normalizadas y no normalizadas sin firmar
  • 10/10/10/2 atributos de vértices normalizados firmados y sin firmar
  • Atributos de vértice de punto flotante de 16 bits
  • 8-bit-por-componente texturas normalizadas firmadas
  • Formatos de compresión de texturas ETC2 / EAC
  • Formatos de textura de tamaño interno con garantías de mínima precisión.
  • procesadores de muestras múltiples
  • Renderbuffers normalizados sin firmar de 8 bits
  • Texturas de profundidad y comparación de sombras.
  • Procesadores y texturas de 24 bits de profundidad.
  • 24/8 de profundidad / plantillas de plantillas y texturas
  • Profundidades y texturas de 32 bits y 32 F / 8 de profundidad / plantilla
  • Blits de estiramiento (con restricciones)
  • consejos de invalidación de framebuffer
  • reinicio primitivo con índice fijo
  • Índices de elementos enteros sin signo con al menos 24 bits utilizables
  • comando de dibujo que permite la especificación de la gama de elementos accedidos
  • capacidad de adjuntar cualquier nivel de mipmap a un objeto framebuffer
  • Ecuaciones de mezcla mínimo / máximo
  • binarios de programas, incluidos los binarios de consulta de programas GLSL vinculados
  • compilador en línea obligatorio
  • Matrices uniformes no cuadradas y transponibles.
  • estado adicional de la tienda de píxeles
  • consultas de cadena de extensión indexada