WebGL Es una especificación estándar en desarrollo que permite mostrar gráficos tridimensionales acelerados por hardware en navegadores web sin necesidad de instalar software adicional al navegador (plug-ins).
En realidad es una API para javascript que permite usar OpengGL incorporado en los navegadores.[1]
WebGL utiliza un elemento de HTML5 llamado Canvas el cual permite mostrar gráficos 2D e imágenes de una manera dinámica, canvas consiste de una región dibujable definida en código HTML con los atributos de altura y espesor, el código javascript permite acceder a esa región a través de un conjunto completo de funciones de dibujo 2D, esto es lo que permite generar los gráficos dinámicamente. [2]
Esta especificación es gestionada por el consorcio de tecnología Kronos Group.
Para comenzar hay unos muy buenos tutoriales para aprender a usar WebGL [3], que son referencia obligada para entender como funciona esta tecnología.
Para acelerar las cosas existe una biblioteca 3D en javascript llamada three.js, la biblioteca provee <canvas>, <svg> y render WebGL.[4] creada por mrdoob : https://github.com/mrdoob
En esta biblioteca se incluyen funcionalidades para manejo de camaras (ortografica y perspectiva), funciones para manejar la geometria, el color, vertices, splines, matrices, luces, materiales, objetos (esqueletos, modelos, modelos animados, particulas, etc), renders (canvas, dom, svg, webgl), escenas, texturas y muchas otras mas : http://mrdoob.github.com/three.js/docs/48/#Camera
Y este es un ejemplo de un trabajo muy bueno usando esta tecnología Web3D.
Una cuestión interesante sobre WebGL es que es un estandar que ha sido adoptado para integrarlo en las nuevas versiones de los navegadores web de Google (chrome) y Mozilla (firefox) incluso de Apple (safari) pero no así en internet explorer de Microsoft pues menciona cuestiones de seguridad para no hacerlo. Por el momento WebGL sigue avanzado.
Nota:
“Los gráficos vectoriales escalables (svg) es una especificación para describir gráficos vectoriales bidimensionales estáticos o anímados en formato xml.” [5]
Referencias:
[1]http://en.wikipedia.org/wiki/Canvas_element
[2]http://en.wikipedia.org/wiki/WebGL
[3]http://learningwebgl.com/blog/?page_id=1217
[4]https://github.com/mrdoob/three.js/
[5]http://en.wikipedia.org/wiki/Scalable_Vector_Graphics
[6]http://es.wikipedia.org/wiki/Khronos_Group
Imagen y demos:
http://mrdoob.github.com/three.js/
http://mrdoob.com/
http://alteredqualia.com/