Blend4Web | |
---|---|
Típusú | Eszközök interaktív 3D grafikához |
Fejlesztő | Diadal |
Beírva | JavaScript , Python , C , C++ |
Első kiadás | 2014. március 28 |
legújabb verzió | 18.05.0 |
Állapot | Aktív |
Engedély | GPLv3 vagy kereskedelmi |
Weboldal | blend4web.com |
A Blend4Web egy nyílt forráskódú keretrendszer interaktív 3D grafikák létrehozására és megjelenítésére a böngészőkben . A Blend4Web a nyílt forráskódú Blender 3D modellező csomagot használja a tartalom előkészítéséhez.
Az orosz Triumph cég fejlesztette és adta ki 2014-ben, amely kereskedelmi terméklicencet (beleértve a kész alkalmazások példáit is) és műszaki támogatási szolgáltatásokat is biztosít.
A Blend4Web audiovizuális tartalom előkészítése a Blender 3D modellező és animációs csomagban történik . A tartalom WebGL , Web Audio és más szabványos böngészőtechnológiák használatával kerül lejátszásra, bármilyen bővítmény használata nélkül [1] .
A keretrendszert kettős licencfeltételek , nyílt GPLv3 és kereskedelmi licencek alapján terjesztik. A forráskód a GitHub [2] tárolójában található .
A 3D-s jelenet a Blenderben jön létre, és JSON -fájlként és bináris fájlként exportálódik, amelyet a webalkalmazás tölt be . A jelenet egyetlen, önálló HTML - fájlként is exportálható, amely csomagolja az exportált adatokat, a weblejátszó felhasználói felületét és a végrehajtható kódot [3] . A HTML formátumú exportálást tekintik a Blend4Web legegyszerűbb módjának [4] . Az így létrejött , minimum körülbelül 1 MB méretű fájl a szabványos elem [5] segítségével elhelyezhető egy weboldalon . A Blend4Web alapú webalkalmazások olyan népszerű közösségi hálózatokon telepíthetők , mint a Facebook [6] és a VKontakte . <iframe>
A Blend4Web szoftverösszetevői JavaScript-könyvtárakat , egy Blender-bővítményt, valamint egy sor eszközkészletet tartalmaznak a 3D-s jelenetparaméterek beállításához, a hibakereséshez és az optimalizáláshoz.
A Blend4Web fejlesztését a moszkvai Triumph cég kezdte 2010-ben. Az első nyilvános megjelenésre 2014. március 28-án került sor [7] .
A keretrendszer számos olyan összetevőt tartalmaz, amelyek általában megtalálhatók a játékmotorokban , beleértve a hangforrás-pozícionáló rendszert, a fizikai motort ( a Bullet fizikai motorjának JavaScript - be portolt elágazása ), egy animációs rendszert és egy absztrakciós réteget a játék logikájának programozásához [8 ] .
Akár 8 különböző típusú animáció is hozzárendelhető minden objektumhoz, beleértve a csontváz és csúcs animációkat is. Az animáció sebessége és iránya, valamint a részecskerendszerek paraméterei (méret, kezdeti sebesség és szám) az API -n keresztül állíthatók be [9] .
Adatok dinamikus be- és kirakodása, fénytérképek támogatottak , lehetőség van a felszín alatti szórás szimulálására [10] .
Vannak megoldások a kültéri jelenetek renderelésére , beleértve a szélszimulációt, a vízszimulációt, az atmoszférikus hatásokat. Ennek a funkciónak a működését a Farm bemutató videója mutatja be, amely számos animált, nem játékos karaktert is tartalmaz , a helyszínen való mozgás lehetőségét első személyű nézetben, tárgyakkal való interakciót és járművezérlést [11] .
A böngészők közötti WebGL technológia használatának köszönhetően a Blend4Web minden nagyobb [12] böngészőben működik , beleértve a mobileszközöket is [13] . A WebGL-szabvány kísérleti megvalósításával rendelkező böngészőkben, például az Internet Explorerben azonban a Blend4Web szolgáltatásai nem támogatottak teljes mértékben [14] . Vannak olyan alkalmazások, amelyek a Tizen operációs rendszeren futhatnak , különösen a Samsung Gear S2 okosórákon [ 15] .
A böngésző keretrendszerek számára nem triviális funkciók közül a következőket nevezzük: optimalizálás rajzolási hívások kombinálásával, optimalizálás rejtett objektumok levágásával, fizikai számítások elvégzése külön végrehajtási szálban , tengeri hullámok viselkedésének szimulálása [16] .
A 14.09-es verzióban a Blend4Web megvalósította az interaktivitás megvalósítását 3D-s jelenetekben a vizuális programozási eszköz segítségével . Az eszköz hasonlít a Blender beépített játékmotorjának logikai szerkesztőjére, különösen a BGE-hez hasonlóan a Blender felületébe épített vizuális logikai blokkokat használ. A művész által létrehozott animációs szekvenciák a felhasználó bizonyos 3D objektumokkal való interakciójára reagálva játszódnak le [17] [18] .
A 15.03-as verziótól kezdve a Blend4Web támogatja a 2D HTML elemek (például info ablakok) 3D objektumokhoz csatolását (úgynevezett annotációk), valamint az objektumok másolását az alkalmazás futása közben ( példányosítás ) [ 19] .
A támogatott utófeldolgozási effektusok közé tartoznak a világító felületek ( glow ), a virágzás , a kamera mélységélessége , az alkonyi sugarak , a mozgási elmosódás és a keresztárnyékolás ( SSAO ) [20] .
A virtuális valóság eszközök támogatása 2015 végén került bevezetésre. Az Oculus Rift sisak működését a kísérleti WebVR API biztosítja . [21]
A Blender kiegészítő Python és C nyelven íródott, és Linux x86/x64, OS X x64 és MS Windows x86/x64 platformokra fordítható.
A Blend4Web beállítási profil aktiválva van a kiegészítő beállításaiban. A profilra váltás újjáépíti a Blender felületét, és egyben eltávolítja az összes nem támogatott beállítást [22] .
A Blend4Web számos Blender-specifikus szolgáltatást támogat, mint például a csomóponti anyagszerkesztő (egy vizuális shader programozási eszköz ) [23] és a részecskerendszer [24] . A Blender csomag részeként egy nemlineáris animációs (NLA) szerkesztő is kezdetben támogatott egyszerű szkriptek létrehozására.
A szerkesztőben és a böngészőben ( WYSIWYG ) hasonló vizuális eredmény érdekében a felhasználóknak azt tanácsoljuk, hogy váltsanak a Blender által biztosított GLSL renderelési módra [25] .
A Blender beépített játékmotorjához ( Blender Game Engine , BGE) hasonlóan a Blend4Web is betölti a Blender által előkészített jelenetadatokat köztes szerkesztő használata nélkül [4] . A Blend4Web alapú alkalmazásokat böngészőben való futtatásra tervezték, míg a BGE végrehajtható fájlok böngészőkön kívül futnak [26] [27] . A Blend4Web API -jai JavaScriptben vannak implementálva , szemben a Blender beépített motorjának Python -alapú API-jaival. A vizuális BGE logikai szerkesztő helyett, amelyet a Blend4Web nem támogat, az utóbbi a szabványos webfejlesztési megközelítések használatát feltételezi.
A Unity az 5-ös verzió óta képes a WebGL-be exportálni [28] . A WebGL-támogatás megvalósítása azonban kísérleti jellegű, különösen a WebGL-verzióban a közeljövőben nem tervezik mobileszközök, hangforrás-pozicionáló rendszerek és videotextúrák támogatását [29] .
A Three.js WebGL-könyvtár triviális feladatok végrehajtásához kódírást igényel, ami megemeli a belépési küszöböt és meghosszabbítja a tanulási görbét; a Blend4Webben az online prezentációk elkészítésével kapcsolatos munka nagy része nem igényel programozást [30] .
A NASA interaktív webalkalmazást fejlesztett ki a Curiosity rover leszállásának harmadik évfordulójára [31] . A Blend4Web alapú alkalmazás [32] a rover mozgását, a kamera és a manipulátor vezérlését valósítja meg, és reprodukál néhány ismert küldetési eseményt [33] [34] . Az alkalmazást a SIGGRAPH 2015 WebGL szekciójának elején mutatták be [35] .