Una forma de verlo es WebGL es OpenGL ES 2.0 y OpenGL ES 2.0 es OpenGL con todo el legacy cruft eliminado.
Desde shaders se añadieron todo el legado de la función fija de tuberías glPushMatrix
, glLight
, glVertex
etc todo hecho ningún sentido mantener alrededor.
Entonces, ¿son esas características "faltantes" o las características "obsoletas" correcta y correctamente?
¿Qué características específicas estás buscando?
WebGL / OpenGL ES 2.0 es un sombreador básico de vértices y fragmentos. Hay compatibilidad limitada para texturas sin potencia de 2 y solo unos pocos formatos de textura (en realidad, no hay mucho límite, el 99% de todas las texturas son RGB8 o RGBA8). La compatibilidad con texturas de punto flotante es opcional, pero la mayoría de los dispositivos las admiten. Sin embargo, el soporte para renderizar en texturas de coma flotante es más raro. Pocos dispositivos móviles, si los hay, admiten la representación en una textura de punto flotante.
WebGL2 (recién enviado) y OpenGL ES 3.0 agregaron una tonelada de nuevos formatos de textura que incluyen texturas basadas en enteros y texturas 3D. Eliminó los límites de textura sin potencia de 2. Agregó retroalimentación de transformación (la capacidad de un sombreador de vértices para escribir en un búfer). También agregó consultas de oclusión. Los objetos de matriz de vértices son estándar (eran opcionales en WebGL / ES 3.0). Hay muchas otras características menores.
ES 3.1 (y probablemente la próxima versión de WebGL) agrega sombreadores de cómputo (la capacidad de un sombreador de fragmentos para realizar escrituras de acceso aleatorio). Los sombreadores de fragmentos solo podían escribir en el fragmento / píxel que se les solicitaba en ese momento, mientras que calcular sombreadores y escribir en cualquier lugar que quisieran.
¿Qué otras características querías usar?