# Verge3D

Verge3D ist ein Echtzeit-Renderer und ein Toolkit zur Erstellung interaktiver 3D-Anwendungen auf Websites.

## Übersicht

Verge3D wurde vom gleichen Kern-Team von Software-Ingenieuren entwickelt, das zuvor das Blend4Web-Framework erstellt hat. Verge3D ermöglicht es den Anwendern, interaktive Inhalte in den gängigen 3D-Modellierungstools (3ds Max, Blender und Maya werden derzeit unterstützt) zu bearbeiten und anschließend für die Anzeige in einem Webbrowser zu konvertieren.

## Funktionen

Verge3D nutzt WebGL zum Rendern. Es enthält Komponenten der Three.js-Bibliothek und stellt seine API den Anwendungsentwicklern zur Verfügung.

### Puzzles

    Die Anwendungsfunktionalität kann über JavaScript hinzugefügt werden. Die geschieht entweder durch direktes Schreiben von Code oder durch die Verwendung von Puzzles, der auf Google Blockly basierenden, visuellen Programmierumgebung von Verge3D. Puzzles richtet sich in erster Linie an Nicht-Programmierer, um ihnen eine schnelle Erstellung von interaktiven Szenarien per Drag-and-Drop zu ermöglichen.

### App-Manager und Web-Publishing

    Der App Manager ist ein leichtgewichtiges, webbasiertes Tool zum Erstellen, Verwalten und Veröffentlichen von Verge3D-Projekten, das auf dem lokalen Entwicklungsserver läuft. Der im App Manager integrierte Verge3D Netzwerkdienst ermöglicht die Veröffentlichung von Verge3D Anwendungen über Amazon S3 und EC2 Cloud Services.

### PBR

    Für die Erstellung von Materialien wird neben dem standardmäßigen Shader-basierten Ansatz eine glTF 2.0-konforme, physikalisch basierte Rendering-Pipeline angeboten. PBR-Texturen können mit einer externen Texturierungssoftware wie Substance Painter erstellt werden, für die Verge3D die entsprechende Exportvorgabe bietet.

### glTF- und DCC-Software-Integration

    Verge3D wird direkt in Blender und Autodesk 3ds Max integriert, so dass Benutzer 3D-Geometrie, Materialien und Animationen innerhalb der Software erstellen und anschließend im JSON-basierten glTF-Format exportieren können. Die Sneak Preview-Funktion ermöglicht den Export und die Anzeige von Szenen aus der DCC-Tool-Umgebung.

### Facebook 3D-Posts

    Für die Veröffentlichung auf Facebook bietet Verge3D eine spezielle GLB-Exportoption. Die exportierten GLB-Dateien werden angezeigt und können über den App Manager geöffnet werden. The exported GLB files are displayed and can be opened in the App Manager.

### Asset-Komprimierung

    Exportierte Dateien können optional über eine LZMA-Komprimierung um das bis zu 6-fache in ihrer Dateigröße reduziert werden.

### UI- und Website-Layouts

    In externen WYSIWYG-Editoren erstellte Interface-Layouts können mit Puzzles verknüpft werden und Funktionen der im Browser gerenderten 3D-Szene auszulösen und umgekehrt.

### Physics

    Das Physikmodul kann separat verbunden werden, um Kollisionserkennung, dynamisch bewegte Objekte, Unterstützung für Charaktere und Fahrzeuge, Federn, Seile und Stoffsimulationen zu ermöglichen.

## Workflow

Der Workflow von Verge3D unterscheidet sich erheblich von anderen gängigen WebGL-Frameworks, da er sich an dem Workflow eines 3D-Artisten orientiert. Die Entwicklung einer neuen Verge3D-Anwendung beginnt in der Regel mit der Modellierung, Texturierung und Animation von 3D-Objekten. Die Modelle werden in einer 3D-Szene in einer einzigen *.max- oder *.blend-Datei zusammengestellt. Diese Datei wird dann als Grundlage für ein Verge3D-Projekt verwendet, das über den App Manager erstellt wird. Ein interaktives Szenario wird optional mit Hilfe des Puzzles-Editor-Overlays hinzugefügt. Die Verge3D-Anwendung kann in jedem Entwicklungsstadium mit dem App Manager im Webbrowser angezeigt werden. Die fertige Web-Anwendung kann im Verge3D-Netzwerk, auf Facebook oder auf der Website des Benutzers eingesetzt werden.