Blend4Web
Blend4Web ist ein Open-Source-Framework, mit dessen Hilfe sich interaktive 3D-Grafiken zur Darstellung in Webbrowsern erstellen lassen.
Blend4Web | |
---|---|
Basisdaten
| |
Entwickler | Triumph LLC |
Erscheinungsjahr | 3. Oktober 2016 |
Aktuelle Version | 17.06 (30. Juni 2017) |
Programmiersprache | JavaScript, Python, C, C++ |
Kategorie | Spiel-Engine |
Lizenz | GPLv3 oder kommerziell |
www.blend4web.com |
Übersicht
BearbeitenBlend4Web ist ein Framework, das die 3D-Grafiksoftware Blender erweitert, um die dort erstellten 3D-Inhalte auf Webseiten auszugeben. Die Ausgabe erfolgt in WebGL, WebAudio und anderen Webstandards, was es ermöglicht, die Inhalte ohne die Nutzung von Browser-Plugins wiederzugeben.[1]
Blend4Web ist unter einem dualen Lizenzmodell veröffentlicht. Es existiert eine kommerzielle Lizenzierung und eine Open-Source-Lizenzierung nach GPLv3. Der Quelltext wird auf GitHub gehostet.[2]
Die erstellten 3D-Szenen können auf zwei Arten bereitgestellt werden. Als ein Paar von JSON und Binär Dateien zur Einbindung in eine Webanwendung oder als HTML-Datei, in welche der ausführbare Code und die Benutzeroberfläche des Web-Players gepackt werden.[3] Die HTML-Option ist wohl der einfachere Weg mit Blend4Web zu arbeiten[4], da die resultierende Datei über das Standard-Element Iframe beliebig auf einer Webseite platziert werden kann.[5] So zum Beispiel auch in sozialen Netzwerken wie Facebook und VKontakte.[6]
Der Werkzeugkasten der mit Blend4Web zur Verfügung steht beinhaltet neben dem Blender-Plugin noch JavaScript-Bibliotheken sowie Werkzeuge zur Einstellung der Szenen-Parameter, zum Debuggen und zur Optimierung.
Blend4Web wird seit 2010 von der Moskauer Gesellschaft Triumph LLC entwickelt. Die erste veröffentlichte Version erschien am 28. März 2014.[7]
Funktionen
BearbeitenDas Framework enthält Komponenten, wie sie auch in reinen Game-Engines zu finden sind. So zum Beispiel positionierbare Audioquellen, eine Physik-Engine (Javascript Portierung eines Bullet Fork), ein Animations-System und eine Abstraktionsschicht zur Programmierung einer Spielelogik.[8]
Jedem Objekt können bis zu 8 unterschiedliche Animationen zugewiesen werden, darunter auch Armature- und Vertexanimationen. Die Geschwindigkeit und Abspielrichtung einer Animation sowie die Parameter von Partikelsystemen können direkt über die API beeinflusst werden.[9]
Neben anderen Techniken wird das dynamische Laden und Entladen unterstützt, sowie die Simulation von Sub-Surface-Scattering und die bildbasierte Beleuchtung (IBL).[10]
Zur Darstellung von Außen-Szenarien stellt Blend4Web einige bereits vorgefertigte Effekte zur Verfügung. Diese beinhalten Wind-Laub-Interaktion, die Simulation von Wasser, Atmosphäre und Sonnenlicht. Beispielhaft werden diese Effekte in der Technologiedemonstration „The Farm“ präsentiert. „The Farm“ demonstriert auch die Möglichkeiten der Bewegung und Interaktion mit Gegenständen und Nicht-Spieler-Charakteren sowie das Fahren von Fahrzeugen im First-Person-Mode.[11]
Da Blend4Web auf der Cross-Browser WebGL-API basiert, ist es auf der Mehrzahl[12] (inklusive mobiler) Webbrowser lauffähig. Einige Einschränkungen existieren in Browsern mit lediglich experimenteller WebGL-Unterstützung wie dem Internet Explorer.[13]
Anspruchsvollere Techniken umfassen das Draw-Call-Batching, die Hidden-Surface-Determination, Threaded-Physics-Simulation und Ozeansimulationen.[14]
Mit Version 14.09 wurde zur Interaktionsprogrammierung ein visuelles Tool eingeführt, das an den Logic-Editor des BGE (Blender-Game-Engine) angelehnt ist.[15][16] Es ermöglicht dem Autor logische Blöcke einem Objekt zuzuordnen, welche dann bei einer User-Interaktion abgespielt werden.[17]
Ab Version 15.03 unterstützt Blend4Web das Verknüpfen von HTML-Elementen (wie Informationsfenster) mit 3D-Objekten und die Instanziierung zur Laufzeit.[18]
Unter den Effekten auf der Grundlage der Nachbearbeitung werden leuchtende Oberfläche (englisch glow), Beleuchtung mit hellem Licht (bloom), die Tiefenschärfe der Kamera, Twilight-Strahlen, die Bewegungsunschärfe und die gegenseitige Verschattung (SSAO) unterstützt.
Die folgenden Post-Processing Effekte unterstützt Blend4Web: Glow, Bloom, Schärfentiefe, Strahlenbüschel (God-Rays), Bewegungsunschärfe, und Screen Space Ambient Occlusion.[19]
Seit 2015 werden Ausgabegeräte zur Darstellung von virtueller Realität unterstützt. Im Speziellen existiert eine Unterstützung für das Head-Mounted Display Oculus Rift über die experimentelle WebVR-API.[20]
Blender Integration
BearbeitenDas Add-on für Blender ist in Python bzw. C geschrieben und kann auf den Plattformen Linux-x32/64, macOS x64 und MS Windows x32/64 kompiliert werden.
In den Add-on Einstellungen kann ein spezielles Profil aktiviert werden, das die Benutzeroberfläche von Blender den speziellen Anforderungen von Blend4Web anpasst.[21]
Blend4Web unterstützt einige Blender-spezifische Techniken, wie den Node-basierten Material-Editor und das Partikelsystem.[22] Es existiert eine grundlegende Unterstützung für den Blender-NLA-Editor mit dem sich einfache Szenarien erstellen lassen.
Blend4Web basiert im Wesentlichen auf Blenders Real-Time GLSL-Render-Engine. Um einen WYSIWYG-Workflow zu erhalten, wird empfohlen, diesen auch in Blender zu aktivieren.[23]
Vergleichbare Software
BearbeitenBlender Game Engine
BearbeitenWie die Blender Game Engine (BGE) benötigt Blend4Web zur Darstellung der Inhalte keine weitere Software.[4] Während die BGE aber eine ausführbare Datei zur Offline-Wiedergabe erzeugt, zielt Blend4Web auf die Wiedergabe im Webbrowser ab.[24][25] So verfügt Blend4Web über eine Javascript-API, während die BGE eine Python-API anbietet.
Unity
BearbeitenAb Version 5 bietet Unity die Möglichkeit an, Inhalte in WebGL auszugeben.[26] Bei einem, von einem Unity Spiele-Entwickler durchgeführten Vergleichstest[27] anhand einer Turbofan-Triebwerks-Präsentation, kam dieser zu dem Schluss, dass die Engines eine vergleichbare visuelle Qualität liefern. Ein Unterschied zeigte sich aber in der Größe der von den Engines erzeugten Dateien. Während Unity WebGL-Daten mit 142 MB (unkomprimiert) erzeugte, war die von Blend4Web erzeugte HTML-Datei mit 1,8 MB (unkomprimiert) wesentlich kompakter.
Laut der Unity-WebGL-Roadmap plant Unity in nächster Zukunft keine Unterstützung für Mobilgeräte, positionierbare Audioquellen oder Videotexturen.[28][29]
Three.js
BearbeitenDie beliebte WebGL-Library Three.js erfordert bereits für relativ einfache Aufgaben Programmierkenntnisse und weist dadurch (für Nichtprogrammierer) eine relativ flache Lernkurve auf. In Blend4Web erfolgt ein Großteil des Erstellungsprozesses ohne die Notwendigkeit von Programmierkenntnissen.[30][31]
Anwendungen
BearbeitenZum dritten Geburtstag der Landung des Curiosity Rovers auf dem Mars entwickelte die NASA die auf Blend4Web basierende Anwendung[32] Experience Curiosity. Die Anwendung ermöglicht es den Rover mit seinen Kameras und seinem Roboterarm auf der Marsoberfläche zu steuern. Weiter kann man einige Aufgaben der Mars Science Laboratory Mission nachempfinden.[33][34][35] Präsentiert wurde die Anwendung zum Start des WebGL Blocks auf der SIGGRAPH 2015.[36]
Siehe auch
BearbeitenWeblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ Blend4Web: the Open Source Solution for Online 3D. Mozilla Hacks, abgerufen am 13. August 2015.
- ↑ Blend4Web on GitHub. GitHub.com/TriumphLLC, abgerufen am 11. August 2014.
- ↑ Прахов, Андрей (Июль, 2015). "Blend4Web". Linux Format, стр. 20.
- ↑ a b Blend4Web, an Interactive 3D Viewer. BlenderNation.com, abgerufen am 11. August 2014.
- ↑ Blend4Web: способ вставить 3D-содержание на веб-страницу с использованием WebGL. Belursus.info, archiviert vom (nicht mehr online verfügbar) am 26. Juni 2015; abgerufen am 4. September 2014. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Blender Models in Facebook. Dalai Felinto, archiviert vom (nicht mehr online verfügbar) am 4. März 2016; abgerufen am 11. September 2015. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Blend4Web Official Site – About. Blend4Web.com, abgerufen am 13. August 2015.
- ↑ Представлен Blend4Web, движок для создания браузерных 3D-приложений. OpenNet.ru, abgerufen am 18. Juni 2015.
- ↑ Релиз движка для создания браузерных 3D-приложений Blend4Web 14.08. OpenNet.ru, abgerufen am 13. August 2015.
- ↑ Blend4Web update adds improved lighting and more. BlenderNation.com, abgerufen am 13. August 2014.
- ↑ Blend4Web: "The Farm" – Demo einer kleinen virtuellen Welt. Echt Virtuell, abgerufen am 18. September 2014.
- ↑ Can I use WebGL? caniuse.com, abgerufen am 15. August 2014.
- ↑ Blend4Web: енджин за създаване на браузърни 3D сцени и приложения. Kaldata: Software, Hardware and Game Reviews, abgerufen am 4. September 2014.
- ↑ Cozzi, Patrick. WebGL Insights. CRC Press, 2015, ISBN 978-1-4987-1607-9.
- ↑ Blend4Web Update: Non Linear Animation and more. BlenderNation.com, abgerufen am 29. September 2014.
- ↑ Выпущен фреймворк Blend4Web 14.09. In: digilinux.ru. Archiviert vom (nicht mehr online verfügbar) am 28. September 2014; abgerufen am 22. Juli 2022 (russisch).
- ↑ Blend4Web: обзор новинки отечественного софтопрома. Habrahabr.ru, abgerufen am 4. Juni 2015.
- ↑ Blend4web: annotations interactives et autres nouveautés. Greg G.d.Bénicourt, archiviert vom (nicht mehr online verfügbar) am 14. Mai 2016; abgerufen am 29. Mai 2015. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Релиз движка для создания браузерных 3D-приложений Blend4Web 15.05. OpenNet.ru, abgerufen am 18. Juni 2015.
- ↑ Triumph releases Blend4Web 15.12. cgchannel.com, abgerufen am 18. Februar 2016.
- ↑ Blend4Web – Must-Have for Blender Fans! In: 3ddey.com. Archiviert vom (nicht mehr online verfügbar) am 1. Juni 2015; abgerufen am 22. Juli 2022 (englisch).
- ↑ 3D-Web-Applikationen mit Blend4Web erstellen. entwickler.de, archiviert vom (nicht mehr online verfügbar) am 3. März 2016; abgerufen am 29. Mai 2015. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Blend4Web: Exporter Facilement en HTML. BlenderLounge, abgerufen am 17. Juli 2015.
- ↑ Blender en tu Web: Blend4Web. PatrimonioVirtual.com, abgerufen am 13. August 2014.
- ↑ Blend4Web: Ferramenta publica projetos do Blender para Web. Allan Brito, abgerufen am 29. Mai 2015.
- ↑ Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers. The Mozilla Blog, abgerufen am 16. Juni 2015.
- ↑ Blend4Web vs Unity. Битва за Интернет. Habrahabr.ru, abgerufen am 16. Juni 2015.
- ↑ Почему в NASA отказались от Unity в пользу Blend4Web. Habrahabr.ru, abgerufen am 13. August 2015.
- ↑ WebGL Roadmap. Unity3D.com, abgerufen am 13. August 2015.
- ↑ The Good, The Bad and the WebGL-y. In: benchung.com. Archiviert vom (nicht mehr online verfügbar) am 22. Juni 2015; abgerufen am 22. Juli 2022 (englisch).
- ↑ Что выбрать для 3D сайта – Three.js или Blend4Web? Habrahabr.ru, abgerufen am 17. Juli 2015.
- ↑ New Online Exploring Tools Bring NASA's Journey to Mars to New Generation. NASA, abgerufen am 7. August 2015.
- ↑ Experience Curiosity. NASA's Eyes, abgerufen am 7. August 2015.
- ↑ Prenez le controle de Curiosity avec Blend4Web. Greg G.d.Bénicourt, archiviert vom (nicht mehr online verfügbar) am 19. September 2015; abgerufen am 16. September 2015. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Internet 3D: Take the Curiosity Rover for a Spin Right on the NASA Website. Technology.Org, abgerufen am 12. August 2015.
- ↑ Khronos Events – 2015 SIGGRAPH. Khronos, abgerufen am 13. August 2015.