# Verge3D

Verge3D è un motore di rendering in sistema real-time utilizzato per creare esperienze 3D interattive su siti web.

## Panoramica

Verge3D consente agli utenti di creare contenuti interattivi con software di modellazione 3D (attualmente sono supportati 3D Studio Max e Blender) convertendoli per la visualizzazione in un browser web. Verge3D è stato creato dallo stesso gruppo di ingegneri che in precedenza ha creato il framework Blend4Web.

## Caratteristiche

Verge3D utilizza WebGL per il rendering. Incorpora componenti della libreria Three.js offrendo queste API agli sviluppatori di applicazioni.

### Puzzle

    tramite JavaScript si possono aggiungere funzionalità all'applicazione scrivendo codice o utilizzando puzzle, l'ambiente di programmazione visiva di Verge3D basato su Google Blockly. Puzzle consente la creazione rapida di scenari interattivi tramite la modalità drag-and-drop e per tale motivo è rivolto principalmente ai "non programmatori"

### App Manager e web publishing

    App Manager è uno strumento leggero basato sul web per la creazione, la gestione e la pubblicazione di progetti Verge3D, in esecuzione sul server di sviluppo locale. Il servizio di rete Verge3D integrato in App Manager consente la pubblicazione di applicazioni Verge3D tramite i servizi cloud Amazon S3 e EC2.

### PBR

    Viene offerta una pipeline di rendering basata su glTF 2.0 e con l'approccio standard basato sullo shader. Le texture PBR possono essere create usando un software di texturing esterno come Substance Painter per il quale Verge3D offre il preset di esportazione corrispondente. Oltre al modello glTF 2.0, Verge3D supporta materiali fisici di 3ds Max (Autodesk Raytracer come riferimento) e i materiali Eevee di Blender 2.80

### glTF e DCC software integration

    Verge3D si integra direttamente con Blender e Autodesk 3ds Max consentendo agli utenti di creare geometrie, materiali e animazioni 3D all'interno del software, quindi esportarli nel formato glTF basato sul formato JSON. Ls funzione Sneak Preview consente di esportare e visualizzare scene dall'ambiente dello strumento.

### Facebook 3D posts

    Per la pubblicazione su Facebook, Verge3D offre un'opzione specifica di esportazione GLB. I file GLB esportati possono essere aperti in App Manager.

### Asset compression

    Opzionalmente i file esportati possono essere compressi utilizzando LZMA, con conseguente riduzione delle dimensioni del file fino a 6 volte.

### UI e layouts del sito web

    I layout e le interfacce web create utilizzando un editor WYSIWYG, possono essere collegati a Puzzle per attivare interazioni in una scena 3D visualizzata su web.

### Animazione

    Verge3D supporta l'animazione scheletrica, inclusa l'animazione di bipedi e rig di personaggi oltre a consentire l'animazione dei parametri dei materiali. Le parti del modello possono anche essere configurate per essere trascinate dall'utente.

### Fisica

    Il modulo fisico può essere collegato separatamente per consentire il rilevamento delle collisioni, spostare oggetti dinamicamente, supporto per personaggi e veicoli, molle, corde e simulazione del tessuto.

### AR/VR

    L'aggiornamento 2.10 ha aggiunto il supporto per WebXR, una tecnologia aperta in sviluppo progettata per consentire all'utente un'esperienza in realtà virtuale e realtà aumentata tramite un web browser. Le applicazioni sono compatibile con i controller più diffusi come HTC Vive, Oculus Rift e Google Cardboard. Le esperienze AR/VR possono essere abilitate tramite Puzzle o JavaScript.

## Flusso di lavoro

Quello che caratterizza il flusso di lavoro di Verge3D dagli altri framework WebGL è l'approccio alla programmazione orientata all'ambiente creativo e agli artisti. Lo sviluppo di una nuova applicazione realizzata con Verge3D segue i processi classici di modellazione, texturizzazione e animazione dei modelli 3D e successivamente esportati all'interno di un singolo file * .max o * .blend. Questo file viene quindi utilizzato come base per un progetto Verge3D inizializzato da App Manager. Con l'editor di puzzle è possibile costruire facoltativamente uno scenario interattivo. Un'applicazione Verge3D può essere visualizzata in anteprima nel browser Web in qualsiasi fase di sviluppo utilizzando App Manager. L'applicazione Web completa può essere distribuita sulla rete Verge3D, su Facebook o sul sito Web dell'utente.

## Utilizzi degni di nota

Verge3D è stato utilizzato per il progetto NASA's Jet Propulsion Laboratory per creare una visualizzazione 3D interattiva del Mars InSight lander. L'applicazione web consente di esplorare e interagire con il modello della navicella spaziale in tempo reale, con la possibilità di spostare parti diverse e dispiegare i pannelli solari.
La versione precedente dell'applicazione NASA Experience Curiosity è stata ricompilata usando Verge3D. La vecchia versione girava su Blend4Web. L'applicazione consente di utilizzare il rover, controllare le sue telecamere e il braccio robotico e riproduce alcuni degli eventi principali della missione Mars Science Laboratory.