mezcla4web | |
---|---|
Tipo de | Herramientas para gráficos 3D interactivos |
Desarrollador | Triunfo |
Escrito en | JavaScript , Python , C , C++ |
Primera edición | 28 de marzo de 2014 |
ultima versión | 18.05.0 |
Estado | Activo |
Licencia | GPLv3 o comercial |
Sitio web | blend4web.com |
Blend4Web es un marco de código abierto para crear y mostrar gráficos 3D interactivos en los navegadores . Blend4Web utiliza el paquete de modelado 3D Blender de código abierto para preparar el contenido.
Desarrollado y lanzado en 2014 por la empresa rusa Triumph, que también proporciona una licencia de producto comercial (que incluye ejemplos de aplicaciones listas para usar) y servicios de soporte técnico.
La preparación del contenido audiovisual para Blend4Web se realiza en el paquete de animación y modelado 3D de Blender . El contenido se reproduce usando WebGL , Web Audio y otras tecnologías de navegador estándar, sin el uso de ninguna extensión [1] .
El framework se distribuye bajo los términos de licenciamiento dual , bajo la GPLv3 abierta y licencias comerciales . El código fuente está en el repositorio de GitHub [2] .
La escena 3D se crea en Blender y se exporta como un archivo JSON y un archivo binario para ser cargado por la aplicación web . La escena también se puede exportar como un único archivo HTML autónomo que incluye los datos exportados, la interfaz de usuario del reproductor web y el código ejecutable [3] . La exportación en formato HTML se considera la forma más fácil de trabajar con Blend4Web [4] . El archivo resultante con un tamaño mínimo de alrededor de 1 MB se puede colocar en una página web utilizando el elemento estándar [5] . Las aplicaciones web basadas en Blend4Web se pueden implementar en redes sociales populares como Facebook [6] y VKontakte . <iframe>
Los componentes del software Blend4Web incluyen bibliotecas de JavaScript , un complemento para Blender y un conjunto de herramientas para configurar parámetros de escena 3D, depurar y optimizar.
El desarrollo de Blend4Web fue iniciado por la empresa Triumph de Moscú en 2010. El primer lanzamiento público tuvo lugar el 28 de marzo de 2014 [7] .
El marco contiene una serie de componentes que se encuentran comúnmente en los motores de juegos , incluido un sistema de posicionamiento de fuente de sonido, un motor de física ( una bifurcación del motor de física Bullet adaptado a JavaScript ), un sistema de animación y una capa de abstracción para programar la lógica del juego [8 ] .
Se pueden asignar hasta 8 animaciones de varios tipos a cada objeto, incluidas animaciones esqueléticas y de vértice. La velocidad y la dirección de la animación, así como los parámetros de los sistemas de partículas (tamaño, velocidad inicial y número) se pueden configurar a través de la API [9] .
Carga y descarga dinámica de datos, se admiten mapas de luz , es posible simular la dispersión del subsuelo [10] .
Existen soluciones para renderizar escenas al aire libre, que incluyen simulación de viento, simulación de agua, efectos atmosféricos. El trabajo de esta funcionalidad se demuestra en el video de demostración de Farm , que también contiene numerosos personajes animados que no son jugadores , la capacidad de moverse por la ubicación con una vista en primera persona, interacción con objetos y control de vehículos [11] .
Debido al uso de la tecnología WebGL entre navegadores , Blend4Web funciona en todos los principales [12] navegadores , incluidos los dispositivos móviles [13] . Sin embargo, en los navegadores con una implementación experimental del estándar WebGL, como Internet Explorer , las características de Blend4Web no son totalmente compatibles [14] . Hay aplicaciones que pueden ejecutarse en el sistema operativo Tizen , en particular, en los relojes inteligentes Samsung Gear S2 [ 15] .
Entre las características que no son triviales para los marcos de los navegadores, se denominan las siguientes: optimización mediante la combinación de llamadas de dibujo, optimización mediante el corte de objetos ocultos, realización de cálculos físicos en un hilo de ejecución separado , simulación del comportamiento de las olas del mar [16] .
En la versión 14.09, Blend4Web implementó la capacidad de implementar interactividad en escenas 3D utilizando la herramienta de programación visual . La herramienta se asemeja al editor de lógica del motor de juego integrado de Blender, en particular, como BGE, utiliza bloques lógicos visuales integrados en la interfaz de Blender. Las secuencias de animación creadas por el artista se reproducen en respuesta a la interacción del usuario con ciertos objetos 3D [17] [18] .
A partir de la versión 15.03, Blend4Web admite adjuntar elementos HTML 2D (por ejemplo, ventanas de información) a objetos 3D (las llamadas anotaciones), así como copiar objetos mientras se ejecuta la aplicación ( instanciación ) [ 19] .
Los efectos de posprocesamiento admitidos incluyen superficies brillantes ( resplandor ), floración , profundidad de campo de la cámara , rayos crepusculares , desenfoque de movimiento y sombreado cruzado ( SSAO ) [20] .
El soporte para dispositivos de realidad virtual se implementó a finales de 2015. El funcionamiento del casco Oculus Rift lo proporciona la API WebVR experimental . [21]
El complemento de Blender está escrito en Python y C y se puede compilar para las plataformas Linux x86/x64, OS X x64 y MS Windows x86/x64.
El perfil de configuración de Blend4Web está activado en la configuración del complemento. Cambiar a un perfil reconstruye la interfaz de Blender y elimina todas las configuraciones no admitidas al mismo tiempo [22] .
Blend4Web admite una serie de características específicas de Blender, como el editor de material de nodos (una herramienta para la programación de sombreadores visuales ) [23] y el sistema de partículas [24] . También hay soporte inicial para un editor de animación no lineal (NLA) como parte del paquete Blender para crear scripts simples.
Para obtener un resultado visual similar en el editor y en el navegador ( WYSIWYG ), se recomienda a los usuarios que cambien al modo de representación GLSL proporcionado por Blender [25] .
Al igual que el motor de juego integrado de Blender ( Blender Game Engine , BGE), Blend4Web carga datos de escena preparados por Blender sin utilizar ningún editor intermedio [4] . Las aplicaciones basadas en Blend4Web están diseñadas para ejecutarse en navegadores, mientras que los ejecutables de BGE se ejecutan fuera de los navegadores [26] [27] . Las API de Blend4Web se implementan en JavaScript , a diferencia de las API basadas en Python del motor integrado de Blender. En lugar de un editor de lógica BGE visual, que no es compatible con Blend4Web, este último asume el uso de enfoques de desarrollo web estándar.
Unity ha podido exportar a WebGL desde la versión 5 [28] . La implementación del soporte WebGL, sin embargo, es de naturaleza experimental, en particular, en la versión WebGL, el soporte para dispositivos móviles, sistemas de posicionamiento de fuentes de sonido y texturas de video no está planeado en un futuro cercano [29] .
La biblioteca Three.js WebGL requiere escribir código para realizar tareas triviales, lo que eleva el umbral de entrada y alarga la curva de aprendizaje; en Blend4Web, la mayor parte del trabajo de preparación de presentaciones en línea no requiere programación [30] .
La NASA ha desarrollado una aplicación web interactiva para el tercer aniversario del aterrizaje del rover Curiosity [31] . La aplicación basada en Blend4Web [32] implementa el movimiento del rover, la cámara y el control del manipulador, y reproduce algunos eventos de misión conocidos [33] [34] . La aplicación fue presentada al inicio de la sección WebGL en SIGGRAPH 2015 [35] .