# Verge3D

Verge3D est un moteur de rendu en temps réel et un jeu d'outils permettant de créer des expériences 3D interactives exécutées sur des sites Web.

## Description

Verge3D permet aux utilisateurs de convertir du contenu à partir d'outils de modélisation 3D (3ds Max et Blender sont actuellement pris en charge) pour affichage interactif dans un navigateur Web. Verge3D a été créé par le même groupe d'ingénieurs en logiciels que celui qui avait précédemment créé le framework Blend4Web$^,$$^,$.

## Caractéristiques

Verge3D utilise WebGL pour le rendu. Il intègre des composants de la bibliothèque Three.js et expose son API aux développeurs d'applications.

### Puzzles

Des fonctionnalités peuvent être ajoutées via JavaScript en écrivant du code directement, soit en utilisant Puzzles, l'environnement de programmation visuel de Verge3D fondé sur Google Blockly. Les puzzles sont principalement destinés aux non-programmeurs, ils permettent la création simple et rapide de scénari interactifs par glisser-déposer.

### Gestionnaire d'applications et publication Web

L'App Manager est un outil Web léger permettant de créer, gérer et publier des projets Verge3D s'exécutant sur le serveur de développement local. Le service réseau Verge3D intégré dans App Manager permet de publier des applications Verge3D via les services de cloud Amazon S3 et EC2.

### PBR

Aux fins de création de matériaux, un pipeline de rendu physique conforme à la norme glTF 2.0 est proposé parallèlement à l'approche standard fondée sur l'approche shader$^,$. Les textures PBR peuvent être créées à l'aide d'un logiciel de création de texture externe tel que Substance Painter pour lequel Verge3D propose le préréglage d'exportation correspondant. En plus du modèle glTF 2.0, Verge3D supporte les matériaux physiques de 3ds Max (avec le Raytracer Autodesk comme référence), et les matériaux Eevee de Blender 2.80 en temps réel.

### Intégration glTF et logicielle DCC

Verge3D s'intègre directement à Blender 2.8 et à 3ds Max , ce qui permet aux utilisateurs de créer des géométries, des matériaux et des animations 3D dans ces logiciels, puis de les exporter au format glTF fondé sur JSON. La fonctionnalité Aperçu furtif permet d'exporter et de visualiser des scènes à partir de l'environnement de l'outil DCC$^,$$^,$.

### Messages 3D sur Facebook

Pour la publication sur Facebook, Verge3D offre une option d’exportation GLB spécifique$^,$$^,$. Les fichiers GLB exportés sont affichés et peuvent être ouverts dans l'App Manager.

### Compression des actifs

Les fichiers exportés peuvent éventuellement être compressés LZMA, ce qui permet de réduire leur taille jusqu'à 6 fois.

### UI, user interface, et mise en page du site

Les interfaces créées à l'aide d'éditeurs WYSIWYG externes peuvent être liées à des Puzzles pour déclencher des modifications dans une scène 3D rendue dans le navigateur, et inversement$^,$.

### Animation

Verge3D prend en charge l'animation squelettique, y compris l'animation de bipèdes et d'armatures; Verge3D permet l'animation des matériaux. Les objets peuvent également être configurés pour être déplacées par l'utilisateur$^,$.

### Physique

Le module de "physics" peut être lié séparément pour permettre la détection de collision, le déplacement dynamique d'objets, la prise en charge des personnages et des véhicules, la simulation de ressorts, de cordes et de tissus$^,$. À partir de la version 2.11, des simulations physiques simples peuvent être créées et contrôlées sans code via les Puzzles, le système de programmation visuelle (visual scripting) utilisé par Verge3D.

### AR / VR

La mise à jour 2.10 a ajouté la prise en charge de WebXR , une technologie ouverte en développement conçue pour permettre l’affichage dans les navigateurs Web des expériences de réalité virtuelle et de réalité augmentée. Cela fonctionne avec les casques avec contrôleurs, le HTC Vive et l'Oculus Rift, et avec ceux sans, comme le Google Cardboard. Les expériences AR / VR peuvent être activées via des puzzles ou JavaScript.

## Flux de travail

Le flux de travail de Verge3D diffère considérablement des autres frameworks WebGL classiques. Le développement d'une nouvelle application Verge3D est généralement lancé à partir de la modélisation, du texturage et de l'animation d'objets 3D. Les modèles sont assemblés dans une scène 3D dans un seul fichier *.max ou *.blend. Ce fichier est ensuite utilisé comme base pour un projet Verge3D initialisé à partir de l'App Manager. Un scénario interactif est éventuellement ajouté à l'aide de l'éditeur par superposition (overlay). Une application Verge3D peut être prévisualisée dans le navigateur Web à tout stade de développement à l'aide de l'App Manager. L'application Web terminée peut être déployée sur le réseau Verge3D, sur Facebook ou sur le site Web de l'utilisateur.

## Utilisations notables

Le Jet Propulsion Laboratory de la NASA a utilisé Verge3D pour créer une visualisation 3D interactive de l'atterrisseur martien InSight. L'application Web permet d'explorer et d'interagir avec le modèle en temps réel de l'engin spatial, avec la possibilité de déplacer différentes parties et de déployer les panneaux solaires.
La plus ancienne application Web interactive de la NASA, "Experience Curiosity", a été portée sur Verge3D à partir de Blend4Web. L'application permet de faire fonctionner le rover Curiosity, de contrôler ses caméras et son bras robotique et de reproduire certains des événements marquants de la mission Mars Science Laboratory$^,$.