La biblioteca gráfica basada en web (WebGL ™) es una interfaz de programación abstracta (API) diseñada para permitir el uso de gráficos tridimensionales (3D) directamente en un navegador web sin la necesidad de software o complementos separados del navegador central. . La diferencia entre 3D WebGL ™ y otros lenguajes gráficos 3D basados en navegador, como el lenguaje de marcado de realidad virtual (VRML), es que 3D WebGL ™ permite el acceso directo a la unidad de procesamiento de gráficos (GPU) en la tarjeta de visualización de hardware presente en el ordenador. Otra diferencia es que 3D WebGL ™ no es un lenguaje separado, sino una API implementada a través del lenguaje de scripting JavaScript® que casi todos los navegadores web comprenden de forma nativa. Si bien este tipo de acceso directo y de bajo nivel al hardware del sistema informático es uno de los puntos fuertes de WebGL ™, también es uno de los problemas más importantes, ya que presenta una serie de problemas de seguridad que no se resuelven fácilmente.
Un desarrollo importante que ha hecho posible 3D WebGL ™ es la introducción del elemento canvas en la versión 5 de la especificación HyperText Markup Language (HTML5). El elemento de lienzo permite el acceso de bajo nivel a una ventana gráfica que se puede dibujar y mantener en un estilo consistente con los tipos existentes de API de renderizado en otros lenguajes de programación de computadoras. La API WebGL ™ trabaja con este lienzo acelerado para brindar la capacidad de renderizar escenas complejas muy rápidamente sin tener que depender de la emulación de software en diferentes plataformas o implementaciones.
La API 3D WebGL ™ no solo utiliza el elemento lienzo, sino que también se basa en la biblioteca de gráficos abierta para sistemas integrados (OpenGL ES®). Esta es una versión portátil de la biblioteca OpenGL® estándar que está diseñada para ser portátil no solo entre diferentes sistemas operativos de computadora, sino también en cualquier dispositivo que requiera el uso de gráficos 3D de bajo nivel. Esta pequeña huella permite que la biblioteca se integre en cualquier navegador para casi cualquier dispositivo.
La implementación de 3D WebGL ™ permite el desarrollo de programas interactivos que pueden ejecutarse directamente desde un sitio web o descargarse y ejecutarse como una aplicación independiente dentro del navegador web. Se puede utilizar para crear videojuegos en 3D, software educativo, simulaciones y software de visualización en 3D para la investigación científica y comercial. Al utilizar el navegador como aplicación contenedora, los entornos 3D se pueden desarrollar sin tener que preocuparse por el código repetitivo repetitivo de las interfaces básicas.
Uno de los mayores inconvenientes del uso de 3D WebGL ™, y que impide su aceptación generalizada entre determinadas empresas de fabricación de software y hardware, es el riesgo de seguridad que presenta. La capacidad de un programa para acceder a la GPU puede dar a un programa malicioso la capacidad de forzar al sistema informático host a ejecutar código dañino. También se ha demostrado que los ataques de denegación de servicio (DOS) son posibles utilizando la API WebGL ™. Por esta razón, hay algunas empresas informáticas importantes que se niegan a admitir plenamente WebGL ™ en sus productos.