# Verge3D

Verge3D es un renderizador en tiempo real y un conjunto de herramientas (toolkit) usado para crear experiencias 3D interactivas que se ejecutan en sitios web.

## Resumen

Verge3D permite convertir contenido proveniente de herramientas de modelado 3D (Autodesk 3ds Max y Blender son soportados actualmente) para ser visualizado en un navegador web. Verge3D fue creado por el grupo principal de ingenieros que creó previamente el entorno de desarrollo Blend4Web.

## Características

Verge3D utiliza WebGL para la renderización. Incorpora componentes de la biblioteca Three.js y expone su API a desarrolladores de aplicaciones.

### Puzzles

    A través de JavaScript se puede agregar funcionalidad de aplicaciones, ya sea escribiendo código directamente o mediante el uso de Puzzles, el entorno de programación visual de Verge3D, basado en Google Blockly. Puzzles está dirigido principalmente a no programadores, permitiendo la rápida creación de escenarios interactivos usando una interfaz de arrastrar y soltar.

### Administrador de Aplicaciones (App Manager) y publicación web

    El Administrador de Aplicaciones es una herramienta web simple para la creación, administración y publicación de proyectos de Verge3D, que se ejecuta en el servidor de desarrollo local. La red Verge3D (Verge3D Network) es un servicio integrado en el Administrador de Aplicaciones que facilita la publicación de aplicaciones de Verge3D vía Amazon S3 y los servicios de nube de EC2

### PBR

    Para la creación de materiales, en conjunto con el enfoque estándar basado en sombradores (shaders), se incluye un proceso de renderización basado en física que es compatible con glTF 2.0. Las texturas PBR se pueden crear con software externo, tal como Substance Painter, para el cual Verge3D ofrece un pre-seteo de exportación. Además del modelo glTF 2.0, Verge3D también soporta materiales físicos de 3ds Max (con Autodesk Raytracer como referencia) y los materiales Eevee de tiempo real de Blender 2.80.

### glTF e integración de software de creación digital de contenido (DCC)

    Verge3D se integra directamente con Blender y Autodesk 3ds Max, permitiendo a los usuarios crear geometría 3D, materiales y animaciones dentro del software, y luego exportarlos en el format glTF, basado en JSON. La prestación "Sneak Peek" permite la exportación y visualización de escenas directamente desde el entorno DCC.

### Posts 3D de Facebook

    Para la publicación en Facebook, Verge3D ofrece una opción de exportación GLB específica. Los archivos GLB exportados se pueden ver y pueden ser abiertos en el Administrador de Aplicaciones.

### Compresión de archivos

    Los archivos exportados pueden opcionalmente usar la compresión LZMA, lo que puede reducir el tamaño de los archivos hasta a un sexto del original.

### Interfaz de usuario y diagramación de sitios web

    La diagramación de interfaces creadas mediante el uso de editores externos WYSIWYG, puede ser vinculada con Puzzles para disparar cambios a una escena 3D que sea renderizada en un navegador, y viceversa.

### Animación

    Verge3D soporta animación de esqueletos (skeletal animation), incluyendo la animación de bípedos y estructuras de caracteres, y también permite la animación de parámetros de materiales. Además se pueden configurar partes de modelos para ser desplazados por los usuarios.

### Física

    Adicionalmente, un módulo de física se puede vincular para habilitar la detección de colisiones, el movimiento de objetos en tiempo real, el soporte de caracteres y vehículos, saltos, cuerdas y simulación de telas. Desde la versión 2.11 se pueden crear simulaciones físicas simples y controlarlas sin utilizar Puzzles, el sistema de programación visual usado por Verge3D.

### AR/VR

    La actualización de versión 2.10 agregó soporte para WebXR, una tecnología abierta en desarrollo diseñada para visualizar experiencias de realidad virtual y realidad aumentada en navegadores web. Funciona tanto en dispositivos de realidad virtual con controladores, como el HTC Vive y Oculus Rift, y los que no los incluyen, como Google Cardboard. Las experiencias AR/VR pueden ser activadas vía Puzzles o Javascript.

## Proceso de trabajo

El proceso de trabajo de Verge3D difiere en gran medida de otros entornos WebGL. El desarrollo de una nueva aplicación de Verge3D normalmente comienza con el modelado, texturizado y animación de objetos 3D. Los modelos son integrados en una escena 3D dentro de un archivo único de tipo *.max o *.blend. Este archivo es luego utilizado como la base para un proyecto Verge3D que es inicializado desde el Administrador de Aplicaciones. Opcionalmente se puede agregar un funcionamiento interactivo mediante el editor de Puzzles. Una aplicación Verge3D puede ser pre-visualizada en el navegador web en cualquier punto del proceso de desarrollo usando el Administrador de Aplicaciones. La aplicación web terminada puede ser implementada en la red Verge3D (Verge3D Network), en Facebook o en el sitio web del usuario.

## Usos destacados

El Jet Propulsion Laboratory de la NASA usó Verge3D para crear una visualización interactiva 3D del vehículo Mars InSight. La aplicación web permite la exploración e interacción con el modelo en tiempo real de la nave espacial, con la posibilidad de mover diferentes partes y desplegar los paneles solares.
La anterior aplicación web de la NASA denominada "Experience Curiosity" fue migrada a Verge3D desde Blend4Web. La aplicación hace posible la operación del vehículo, controlar sus cámaras y su brazo robótico, y reproduce algunos de los eventos más importantes de la misión del Mars Science Laboratory.