Blend4Web è un framework open source per creare e visualizzare applicazioni di computer grafica 3D interattive in un web browser.

Blend4Web
software
GenereComputer grafica 3D
Framework per applicazioni web
SviluppatoreTriumph LLC
Data prima versione28 marzo 2014
Ultima versione17.08 (31 agosto 2017)
Sistema operativoMicrosoft Windows
macOS
GNU/Linux
LinguaggioJavaScript
C
Python
LicenzaGPLv3 o Software proprietario
(licenza libera)
Sito webwww.blend4web.com

Panoramica modifica

Il framework Blend4Web si serve di Blender per l'editing delle scene 3D. Il rendering del contenuto si basa su WebGL, Web Audio e altri standard web, senza uso di plug-ins.[1]

Blend4Web è multilicenza: è distribuito come software open source GPLv3 o con licenza commerciale; il codice sorgente è disponibile su GitHub.[2]

Una scena 3D può essere creata in Blender e quindi esportata in una coppia di files: un JSON e un binario da caricare in un'applicazione web. La stessa può anche essere esportata in un singolo file HTML omnicomprensivo, nel quale vengono impacchettati i dati esportati, la GUI del web player e il motore software.[3] L'opzione HTML è considerata la modalità più semplice di utilizzo di Blend4Web.[4] Il file ottenuto, che risulta avere 1Mb di dimensione minima, può essere inserito in una pagina web utilizzando un iframe standard HTML.[5] Il deploy delle applicazioni basate su Blend4Web può essere effettuato su servizi di social networking popolari come Facebook.[6]

La toolchain di Blend4Web consta delle librerie JavaScript, del plugin di Blender e di un set di strumenti per il tweak dei parametri della scena 3D, il debugging e l'ottimizzazione.

Lo sviluppo di Blend4Web è cominciato nel 2010 in una società con sede a Mosca chiamata Triumph. La prima release pubblica è avvenuta il 28 marzo 2014.[7]

Caratteristiche modifica

Il framework è composto da un certo numero di moduli, tipicamente presenti nei game engines, che includono un sistema di audio posizionale, un motore della fisica, (un fork di Bullet su cui è stato effettuato un porting in javaScript), un sistema di animazioni ed un layer di astrazione per la programmazione della logica di gioco.[8]

Per ogni singolo oggetto possono essere assegnate fino a 8 animazioni, comprese animazioni dello scheletro ed animazioni per vertice. La velocità e la direzione dell'animazione (forward/backward play) come anche i parametri dei particle systems (dimensione, velocità iniziale e numero delle particelle) possono essere modificati tramite API.[9]

Tra le altre caratteristiche supportate c'è il caricamento dinamico della scena, il subsurface scattering, e l'illuminazione image-based.[10]

Sono inoltre presenti alcune funzionalità pronte all'uso per il rendering di ambienti esterni estesi, come l'interazione del vento con le foglie, la simulazione dell'acqua, dell'atmosfera e della luce del sole. Un esempio che dimostra questi effetti è la tech-demo "The farm", che contiene anche alcuni NPC animati in maniera multipla e la possibilità di camminare, interagire con oggetti e guidare veicoli in modalità first-person-view.[11]

Essendo basato sull'API cross-browser WebGL, Blend4Web viene eseguito dalla maggior parte[12] dei browser web, inclusi i browser per dispositivi mobili.[13] Tuttavia esistono alcune limitazioni per i browser che supportano WebGL sperimentalmente, come Internet Explorer.[14] Ci sono anche applicazioni sviluppate per dispositivi con sistema operativo Tizen, come gli smartwatch Samsung Gear S2.[15]

Tra le funzionalità avanzate si annoverano il draw call batching, la hidden surface determination, il simulatore fisico a thread e simulatore oceanografico.[16]

Con la versione 14.09 Blend4Web ha introdotto la possibilità di aggiungere interattività alle scene 3D utilizzando un tool di programmazione visuale.[17][18] Il tool ricorda l'editor logico BGE, infatti utilizza blocchi logici piazzati in Blender. Consente di lanciare animazioni create dall'artist quando l'utente interagisce con alcuni oggetti 3D.[19]

Dalla versione 15.03, Blend4Web supporta l'aggancio di elementi HTML (come finestre informative) agli oggetti 3D ("annotations") e la copia run time di oggetti ("instancing").[20]

Tra gli effetti di post-processing sono supportate le seguenti funzionalità: glow, bloom, depth of field, crepuscular rays, motion blur e lo screen space ambient occlusion.[21]

I dispositivi di realtà virtuale sono supportati dalla fine del 2015. In particolare l'head-mounted display Oculus Rift gira sulle API sperimentali WebVR.[22]

Integrazione in Blender modifica

L'add-on per Blender è scritto in Python e C e può essere compilato per Linux x86/x64, OS X x64 and MS Windows x86/x64.

Uno specifico profilo Blend4Web può essere attivato nelle impostazioni dell'add-on. Quando si attiva tale profilo l'interfaccia di Blender cambia in modo da rivelare le impostazioni relative a Blend4Web.[23]

Blend4Web supporta un set di funzionalità specifiche di Blender come il node material editor (un tool per la programmazione visuale degli shader) e il sistema particellare.[24] È disponibile un supporto base dell'editor delle non-linear-animation (NLA) di Blender per creare semplici scenari.

Blend4Web è essenzialmente basato sul motore di rendering real-time di Blender GLSL, e si consiglia di abilitarlo in modo da poter effettuare WYSIWYG editing.[25]

Confronto con software simili modifica

Blender Game Engine modifica

Similarmente al Blender Game Engine (BGE), Blend4Web carica ed esegue i dati direttamente estratti dalle scene Blender, senza l'uso di editor intermedi.[4] Poiché si tratta di un framework web, è pensato per i web browsers, mentre un eseguibile BGE deve essere lanciato offline.[26][27] Blend4Web fornisce le sue proprie JavaScript API, il che è fondamentalmente diverso dalle API basate su Python di BGE. Viene proposto un approccio di sviluppo Web anziché una combinazione di blocchi logici e di scripting Python come avviene per BGE.

Unity modifica

Unity ha offerto un'opzione per il WebGL fin dalla versione 5.[28] Fu portato avanti un sondaggio da parte di uno sviluppatore di videogiochi Unity per confrontare questi due motori.[29] Furono create due presentazioni web-based di una turboventola utilizzando Blend4Web e Unity. Sebbene il realizzatore notò che entrambi i motori rivelarono una qualità visiva simile, il pacchetto WebGL Unity aveva una dimensione totale dei file di 142 Mb (non compressi) mentre il file HTML esportato di Blend4Web per la stessa scena pesava solo 1.8Mb (non compressi).

Secondo la roadmap WebGL di Unity, non vi sono piani per supportare dispositivi mobili, audio posizionale e texture video in un futuro prossimo.[30][31]

Three.js modifica

La popolare libreria WebGL Three.js necessita di programmazione anche per semplici compiti, richiedendo inoltre maggiori competenze da parte degli utenti e offrendo una lenta curva di apprendimento. In Blend4Web, la maggior parte del lavoro di preparazione delle presentazioni online può essere effettuata senza alcuna di programmazione di codice.[32][33]

Realizzazioni rilevanti modifica

NASA ha sviluppato un'applicazione web interattiva chiamata Experience Curiosity per celebrare il terzo anniversario dell'atterraggio su Marte del Curiosity rover.[34] Questa applicazione Blend4Web[35] rende possibile governare il rover, le sue telecamere ed il braccio robotico e riproduce alcuni famosi eventi della missione Mars Science Laboratory.[36][37] L'applicazione è stata presentata all'apertura della sezione WebGL del SIGGRAPH 2015.[38]

Note modifica

  1. ^ "Blend4Web: the Open Source Solution for Online 3D", su hacks.mozilla.org.
  2. ^ "Blend4Web on GitHub", su github.com.
  3. ^ Прахов, Андрей (Июль, 2015).
  4. ^ a b "Blend4Web, an Interactive 3D Viewer", su blendernation.com.
  5. ^ "Blend4Web: способ вставить 3D-содержание на веб-страницу с использованием WebGL", su belursus.info. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 26 giugno 2015).
  6. ^ "Blender Models in Facebook", su dalaifelinto.com. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 4 marzo 2016).
  7. ^ "Blend4Web Official Site - About", su blend4web.com.
  8. ^ "Представлен Blend4Web, движок для создания браузерных 3D-приложений", su opennet.ru.
  9. ^ "Релиз движка для создания браузерных 3D-приложений Blend4Web 14.08", su opennet.ru.
  10. ^ "Blend4Web update adds improved lighting and more", su blendernation.com.
  11. ^ "Blend4Web: "The Farm" - Demo einer kleinen virtuellen Welt", su echtvirtuell.blogspot.de.
  12. ^ "Can I use WebGL?", su caniuse.com.
  13. ^ "HTML5, the 3D Web, and the Death of Plugins", su 3dspace.com. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 15 febbraio 2016).
  14. ^ "Blend4Web: енджин за създаване на браузърни 3D сцени и приложения", su kaldata.com.
  15. ^ "Real Time 3D watchfaces from Luxury Watches for the Gear S2", su tizenexperts.com.
  16. ^ Cozzi, Patrick.
  17. ^ "Blend4Web Update: Non Linear Animation and more", su blendernation.com.
  18. ^ "Выпущен фреймворк Blend4Web 14.09", su digilinux.ru. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 28 settembre 2014).
  19. ^ "Blend4Web: обзор новинки отечественного софтопрома", su habrahabr.ru.
  20. ^ "Blend4web: annotations interactives et autres nouveautés", su benicourt.com. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 14 maggio 2016).
  21. ^ "Релиз движка для создания браузерных 3D-приложений Blend4Web 15.05", su opennet.ru.
  22. ^ "Triumph releases Blend4Web 15.12", su cgchannel.com.
  23. ^ "Blend4Web – Must-Have for Blender Fans!", su 3ddey.com (archiviato dall'url originale il 1º giugno 2015).
  24. ^ "3D-Web-Applikationen mit Blend4Web erstellen", su entwickler.de. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 3 marzo 2016).
  25. ^ "Blend4Web: Exporter Facilement en HTML", su blenderlounge.fr.
  26. ^ "Blender en tu Web: Blend4Web", su patrimoniovirtual.com.
  27. ^ "Blend4Web: Ferramenta publica projetos do Blender para Web", su allanbrito.com.
  28. ^ "Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers", su blog.mozilla.org.
  29. ^ "Blend4Web vs Unity., su habrahabr.ru.
  30. ^ "Почему в NASA отказались от Unity в пользу Blend4Web", su habrahabr.ru.
  31. ^ "WebGL Roadmap", su forum.unity3d.com.
  32. ^ "The Good, The Bad and the WebGL-y", su benchung.com (archiviato dall'url originale il 22 giugno 2015).
  33. ^ "Что выбрать для 3D сайта – Three.js или Blend4Web?", su habrahabr.ru.
  34. ^ "New Online Exploring Tools Bring NASA's Journey to Mars to New Generation", su nasa.gov.
  35. ^ "Experience Curiosity", su eyes.nasa.gov.
  36. ^ "Prenez le controle de Curiosity avec Blend4Web", su benicourt.com. URL consultato il 10 settembre 2016 (archiviato dall'url originale il 19 settembre 2015).
  37. ^ "Internet 3D: Take the Curiosity Rover for a Spin Right on the NASA Website", su technology.org.
  38. ^ "Khronos Events - 2015 SIGGRAPH", su khronos.org.

Voci correlate modifica

Collegamenti esterni modifica