6. HERRAMIENTA WEB DE MONITORIZACIÓN INMERSIVA
6.2. Interfaces de visualización Web avanzada
6.2.1. Tecnologías de visualización Web
basadas en formato texto y gráficos 2D, hasta la utilización de plugins específicos que permiten realizar complejas representaciones 3D interactivas.
Los sistemas de visualización 3D tradicionales requieren de la existencia de hardware específico capaz de optimizar los resultados de la visualización, proporcionando representaciones muy realistas y con una capacidad de interacción muy elevada (por ejemplo: juegos de ordenador, simuladores, sistemas de realidad virtual y sistemas inmersivos, etc.). Sin embargo, en determinadas aplicaciones no es preciso disponer de altos niveles de detalle o de determinados efectos gráficos, si no que se busca aprovechar la facilidad de interacción tridimensional unida a la independencia hardware del dispositivo desde el que se accede a la aplicación. Este es el caso de las interfaces gráficas 3D en entornos Web en las cuales habrá que tener en cuenta que el rendimiento proporcionado por las aplicaciones debe ser lo suficientemente ajustado como para que sea posible la interacción normal (tiempos de carga reducidos, consumos de memoria y disco ajustados, ausencia de retardos, fluidez, etc.).
Dentro de las tecnologías de visualización Web que nos permiten añadir capacidades de gráficos 3D podemos destacar dos tipos: aquellas que proporcionan un mayor rendimiento al requerir de soporte hardware y las que no precisan de hardware específico. En el primer grupo se incluyen tecnologías como:
OpenGL (Open Graphics Library) [OpenGL 2015], Microsoft DirectX [DirectX 2015],
Java3D [Java3D 2008]. Entre las tecnologías que no requieren de hardware
específico figuran: VRML (Virtual Reality Modeling Language) [VRML 1997], X3D
(eXtensible 3D) [X3D 2015], Adobe Flash [Flash 2015], Microsoft Silverlight [Silverlight 2015].
Para facilitar el desarrollo de aplicaciones con altas prestaciones y requisitos gráficos, principalmente orientados al mercado de los videojuegos y simuladores, disponemos de plataformas que incluyen su propio motor gráfico. Mediante estas herramientas se proporciona al desarrollador un mecanismo para simplificar tareas como el renderizado de gráficos 2D/3D, simulación de eventos físicos, detección de colisiones entre objetos, sonidos, animaciones, inteligencia artificial,
gestión de memoria y gráficos, capacidades de streaming, etc. Los principales
Algunos ejemplos de este tipo de plataformas son los siguientes: Unity [Unity 2015], Unreal Engine [Unreal 2015], Crytek CryENGINE [Crytek 2015].
Revisando las tecnologías existentes y sus características principales, se puede considerar que actualmente la plataforma Adobe Flash es una de las opciones más interesantes para el desarrollo de aplicaciones interactivas complejas y con bajos requisitos de hardware [Reinhardt 2009]. Para su utilización es necesario instalar el plugin correspondiente pero debido a su amplia difusión este plugin ya se encuentra incluido en la mayoría de navegadores Web actuales. Por defecto, Adobe Flash en sus últimas versiones proporciona algunas primitivas 3D pero no un motor gráfico suficiente para determinados proyectos complejos [Allen 2008]. Para cubrir estas necesidades se pueden utilizar motores 3D Flash independientes. La principal ventaja que proporcionan los motores 3D para Flash es que permiten al programador combinar el espacio 3D con el espacio 2D de animaciones de Flash,
reutilizando todos los controles y objetos (widgets) existentes. Entre estos motores
3D podemos destacar por su nivel de difusión:
• Papervision3D [Papervision3D 2009]. Librería de clases 3D desarrollada en lenguaje ActionScript. Este motor 3D permite cargar modelos 3D en diferentes formatos: 3DStudio, MD2, Collada y SketchUp. Es una de las librerías más utilizadas y dispone de abundante documentación.
• Away3D [Away3D 2013]. Basado originalmente en Papervision3D, ofrece características similares a éste, incluso ambas librerías comparten desarrollos. Su rendimiento es ligeramente inferior al proporcionado por Papervision3D, debido a una implementación más compleja del algoritmo de Z-Sorting.
• Alternativa3D [Alternativa3D 2012]. Es una librería 3D para Adobe Flash que permite crear juegos y aplicaciones 3D para el navegador Web. Aprovecha las capacidades de las tarjetas gráficas actuales para proporcionar altos rendimientos basados en aceleración por hardware (GPU). Entre los formatos de los modelos 3D que soporta se incluye 3DS Max, disponiendo de un plugin específico para esta conocida herramienta de modelado (Autodesk 3DS Max).
• O3D [O3D 2009]. Es un API web que sirve para crear aplicaciones 3D completas e interactivas en el navegador. Se ha desarrollado como un plugin Web experimental para los principales navegadores Web (Internet Explorer, Firefox y Google Chrome). Permite cargar modelos en formato Collada.
El mayor inconveniente que tienen todos los motores 3D sobre Flash es la carencia de aceleración hardware, aunque esto puede ser considerado una gran ventaja para las aplicaciones Web al no tener este tipo de dependencias. Esta carencia repercute en la calidad del renderizado en comparación con el rendimiento alcanzado por OpenGL o DirectX. Como consecuencia los modelos que pueden cargarse deben ser reducidos, con la menor cantidad de polígonos posible, y con texturas sencillas. Además, para aumentar el rendimiento, todos estos motores
utilizan algoritmos de Z-Sorting (depth sorting) muy conservadores, que provocan
que muchas veces las caras de los objetos 3D no se ordenen correctamente en el espacio, perdiendo calidad y quitando realismo a las escenas [Foley 1990][Ver Hague 2006].
Como alternativa al uso de la plataforma Adobe Flash también existen otras herramientas que proporcionan opciones de visualización 3D en navegadores Web. Estas herramientas precisan de la instalación de plugins específicos en el navegador para poder reproducir el contenido 3D, este es el caso de O3D de Google [O3D 2009], Cortona3D Viewer para modelos VRML [Cortona3D 2015] y Octaga Player para modelos XSD [Octaga 2015]. El primero de estos ejemplos utiliza JavaScript como lenguaje de programación. Los restantes son plugins comerciales y están orientados a aplicaciones de realidad virtual.
En 2009 se crea la especificación estándar WebGL, para desplegar gráficos en 3D en navegadores Web, permitiendo activar gráficos en 3D acelerados por hardware en páginas Web, sin la necesidad de plugins en cualquier plataforma que soporte OpenGL (está basada en la especificación OpenGL ES 2.0) [WebGL 2015].
Hasta la versión 4 de la especificación HTML no se consideraba el ámbito de desarrollo 3D y por este motivo se necesitaban plugins específicos. Los nuevos elementos y atributos añadidos por el nuevo estándar HTML5 permitirán la inclusión de grandes mejoras en el apartado de la visualización para nuevos
navegadores Web, facilitando el diseño y desarrollo de interfaces Web avanzadas.
Por medio del elemento Canvas de HTML5, y utilizando las nuevas especificaciones
y estándares como WebGL, se conseguirá integrar en el navegador Web las capacidades gráficas 3D con aceleración por hardware (CPU, GPU) cuando el dispositivo soporte la especificación OpenGL.