Blend4Web | |
---|---|
Tip de | Instrumente pentru grafică 3D interactivă |
Dezvoltator | Triumf |
Scris in | JavaScript , Python , C , C++ |
Prima editie | 28 martie 2014 |
ultima versiune | 18.05.0 |
Stat | Activ |
Licență | GPLv3 sau comercial |
Site-ul web | blend4web.com |
Blend4Web este un cadru open source pentru crearea și afișarea graficelor 3D interactive în browsere . Blend4Web folosește pachetul de modelare 3D open source Blender pentru a pregăti conținutul.
Dezvoltat și lansat în 2014 de compania rusă Triumph, care oferă, de asemenea, o licență de produs comercial (inclusiv exemple de aplicații gata făcute) și servicii de asistență tehnică.
Pregătirea conținutului audio-vizual pentru Blend4Web se realizează în pachetul de modelare și animație 3D Blender . Conținutul este redat folosind WebGL , Web Audio și alte tehnologii standard de browser, fără utilizarea vreunei extensii [1] .
Cadrul este distribuit în condițiile de licențiere duală , sub licențe deschise GPLv3 și comerciale . Codul sursă se află în depozitul de pe GitHub [2] .
Scena 3D este creată în Blender și exportată ca fișier JSON și fișier binar pentru a fi încărcat de aplicația web . Scena poate fi, de asemenea, exportată ca un singur fișier HTML autonom , care împachetează datele exportate, interfața de utilizator a playerului web și codul executabil [3] . Exportul în format HTML este considerat cel mai simplu mod de a lucra cu Blend4Web [4] . Fișierul rezultat cu o dimensiune minimă de aproximativ 1 MB poate fi plasat pe o pagină web folosind elementul standard [5] . Aplicațiile web bazate pe Blend4Web pot fi implementate pe rețele sociale populare, cum ar fi Facebook [6] și VKontakte . <iframe>
Componentele software Blend4Web includ biblioteci JavaScript , un program de completare pentru Blender și un set de instrumente pentru setarea parametrilor scenei 3D, depanare și optimizare.
Dezvoltarea Blend4Web a fost începută de compania Triumph din Moscova în 2010. Prima lansare publică a avut loc pe 28 martie 2014 [7] .
Cadrul conține o serie de componente întâlnite în mod obișnuit în motoarele de joc , inclusiv un sistem de poziționare a surselor de sunet, un motor fizic ( o furcă a motorului de fizică Bullet portat la JavaScript ), un sistem de animație și un strat de abstractizare pentru programarea logicii jocului [8] ] .
Fiecărui obiect pot fi alocate până la 8 animații de diferite tipuri, inclusiv animații scheletice și de vârf. Viteza și direcția animației, precum și parametrii sistemelor de particule (dimensiune, viteză inițială și număr) pot fi setate prin intermediul API [9] .
Încărcarea și descărcarea dinamică a datelor, hărțile luminoase sunt acceptate , este posibilă simularea împrăștierii subterane [10] .
Există soluții pentru redarea scenelor în aer liber, inclusiv simularea vântului, simularea apei, efectele atmosferice. Funcționarea acestei funcționalități este demonstrată în videoclipul demonstrativ Farm , care conține, de asemenea, numeroase personaje animate non-jucatoare , capacitatea de a se deplasa în jurul locației cu o vedere la persoana întâi, interacțiunea cu obiecte și controlul vehiculului [11] .
Datorită utilizării tehnologiei WebGL încrucișate, Blend4Web funcționează în toate browserele [12] majore , inclusiv dispozitivele mobile [13] . Cu toate acestea, în browserele cu o implementare experimentală a standardului WebGL, cum ar fi Internet Explorer , caracteristicile Blend4Web nu sunt pe deplin acceptate [14] . Există aplicații care pot rula pe sistemul de operare Tizen , în special, pe smartwatch-urile Samsung Gear S2 [ 15] .
Printre caracteristicile care nu sunt banale pentru cadrele de browser, sunt numite următoarele: optimizarea prin combinarea apelurilor de desen, optimizarea prin tăierea obiectelor ascunse, efectuarea de calcule fizice într-un fir de execuție separat , simularea comportamentului valurilor mării [16] .
În versiunea 14.09, Blend4Web a implementat capacitatea de a implementa interactivitate în scene 3D folosind instrumentul de programare vizuală . Instrumentul seamănă cu editorul logic al motorului de joc încorporat al lui Blender, în special, ca și BGE, folosește blocuri logice vizuale construite în interfața Blender. Secvențele de animație create de artist sunt redate ca răspuns la interacțiunea utilizatorului cu anumite obiecte 3D [17] [18] .
Începând cu versiunea 15.03, Blend4Web acceptă atașarea elementelor HTML 2D (de exemplu, ferestre de informații) la obiecte 3D (așa-numitele adnotări), precum și copierea obiectelor în timp ce aplicația rulează ( instanțare ) [ 19] .
Efectele de post-procesare acceptate includ suprafețele strălucitoare ( strălucire ), înflorirea , adâncimea câmpului camerei , razele crepusculare , estomparea mișcării și umbrirea încrucișată ( SSAO ) [20] .
Suportul pentru dispozitivele de realitate virtuală a fost implementat la sfârșitul anului 2015. Funcționarea căștii Oculus Rift este asigurată de API-ul experimental WebVR . [21]
Suplimentul Blender este scris în Python și C și poate fi compilat pentru platformele Linux x86/x64, OS X x64 și MS Windows x86/x64.
Profilul de setări Blend4Web este activat în setările suplimentului. Comutarea la un profil reconstruiește interfața Blender și elimină toate setările neacceptate în același timp [22] .
Blend4Web acceptă o serie de caracteristici specifice Blender-ului, cum ar fi editorul de materiale nod (un instrument pentru programarea vizuală a shaderului ) [23] și sistemul de particule [24] . Există, de asemenea, suport inițial pentru un editor de animație neliniară (NLA) ca parte a pachetului Blender pentru crearea de scripturi simple.
Pentru un rezultat vizual similar în editor și în browser ( WYSIWYG ), utilizatorii sunt sfătuiți să treacă la modul de randare GLSL oferit de Blender [25] .
La fel ca motorul de joc încorporat al lui Blender ( Blender Game Engine , BGE), Blend4Web încarcă date de scenă pregătite de Blender fără a utiliza vreun editor intermediar [4] . Aplicațiile bazate pe Blend4Web sunt proiectate să ruleze în browsere, în timp ce executabilele BGE rulează în afara browserelor [26] [27] . API -urile Blend4Web sunt implementate în JavaScript , spre deosebire de API-urile bazate pe Python ale motorului încorporat al lui Blender. În loc de un editor logic BGE vizual, care nu este acceptat de Blend4Web, acesta din urmă presupune utilizarea abordărilor standard de dezvoltare web.
Unity a putut să exporte în WebGL începând cu versiunea 5 [28] . Implementarea suportului WebGL, totuși, este de natură experimentală, în special, în versiunea WebGL, suportul pentru dispozitive mobile, sisteme de poziționare a surselor de sunet și texturi video nu este planificat în viitorul apropiat [29] .
Biblioteca Three.js WebGL necesită scrierea de cod pentru a efectua sarcini banale, ceea ce crește pragul de intrare și prelungește curba de învățare; în Blend4Web, majoritatea lucrărilor de pregătire a prezentărilor online nu necesită programare [30] .
NASA a dezvoltat o aplicație web interactivă pentru a treia aniversare de la aterizarea roverului Curiosity [31] . Aplicația bazată pe Blend4Web [32] implementează mișcarea roverului, controlul camerei și al manipulatorului și reproduce unele evenimente de misiune cunoscute [33] [34] . Aplicația a fost prezentată la începutul secțiunii WebGL la SIGGRAPH 2015 [35] .