Blend4Web | |
---|---|
Тып | Інструментарый для інтэрактыўнай трохмернай графікі |
Аўтар | Трыумф |
Распрацоўшчык | Трыумф |
Напісана на | JavaScript, Python, C, C++ |
Першы выпуск | 28 сакавіка 2014 |
Апошняя версія |
|
Стан | У актыўнай распрацоўцы |
Ліцэнзія | GPLv3 або камерцыйная |
Сайт | blend4web.com |
Blend4Web — адкрыты фрэймворк, прызначаны для стварэння і адлюстравання інтэрактыўнай трохмернай графікі ў браўзэрах, які прадугледжвае выкарыстанне для стварэння кантэнту адкрыты пакет 3D-мадэлявання Blender.
Выпушчаны ў 2014 годзе, распрацоўшчык — расійская фірма «Трыумф», пастаўляе таксама камерцыйную ліцэнзію прадукту (якая ўключае прыклады з зыходнымі кодамі і паслугі па тэхнічнай падтрымцы).
Падрыхтоўка аўдые-візуальнага кантэнту для Blend4Web ажыццяўляецца ў пакеце 3D-мадэлявання і анімацыі Blender. Кантэнт прайграваецца з дапамогай WebGL, Web Audio і іншых стандартных браузерных тэхналогій, без выкарыстання якіх-небудзь пашырэнняў[2].
Фреймворк распаўсюджваецца на ўмовах падвойнага ліцэнзавання, пад адкрытай GPLv3 і камерцыйнай ліцэнзіямі. Зыходны код знаходзіцца ў рэпазіторыі на GitHub[3].
3D-сцэна ствараецца ў Blender і экспартуецца ў выглядзе файла ў фармаце JSON і бінарнага файла для наступнай загрузкі вэб-дадаткам. Сцэна можа быць экспартавана ў выглядзе адзінага самадастатковага HTML-файла, у які пакуюцца экспартаваныя дадзеныя, карыстацкі інтэрфейс вэб-плэера і выкананы код[4]. Экспарт у HTML фармаце разглядаецца як найбольш просты спосаб работы з Blend4Web[5]. Выніковы файл з мінімальным памерам каля 1 МБ можа быць размешчаны на вэб-старонцы з дапамогай стандартнага элемента iframe[6]. Вэб-дадаткі на аснове Blend4Web могуць быць разгорнутыя ў папулярных сацыяльных сетках, такіх як Facebook[7] і У Кантакце.
У склад праграмных кампанентаў Blend4Web ўваходзяць бібліятэкі JavaScript, дадатак да Blender і набор інструментаў для налады параметраў 3D-сцэн, адладкі і аптымізацыі.
Распрацоўка Blend4Web была пачатая маскоўскай кампаніяй «Трыумф» у 2010 годзе. Першы публічны рэліз адбыўся 28 сакавіка 2014 года[8].
Фрэймворк змяшчае шэраг кампанентаў, звычайна прысутных у ігравых рухавіках, уключаючы сістэму пазіцыянавання крыніц гуку, фізічны рухавік (форк фізічнага рухавіка Bullet, размешчаны на JavaScript), сістэму анімацыі і пласт абстракцыі для праграмавання ігравой логікі[9].
На кожны аб’ект можа быць прызначана да 8 анімацый рознага тыпу, у тым ліку шкілетную і вяршынную анімацыю. Хуткасць і кірунак анімацыі, а таксама параметры сістэм часціц (памер, пачатковая хуткасць і колькасць) могуць быць зададзены з дапамогай API[10].
Падтрымліваюцца дынамічная загрузка і выгрузка дадзеных, карты асвятлення, маецца магчымасць сімуляцыі падпаверхневага рассейвання[11].
Маюцца рашэнні для рэндэрынгу вонкавых сцэн, уключаючы сімуляцыю ўздзеяння ветру, сімуляцыю вады, атмасферныя эфекты. Работа названага функцыяналу прадэманстравана ў дэма-роліку «Ферма», у якім таксама прысутнічаюць шматлікія аніміраваныя неігравыя персанажы, рэалізавана магчымасць перамяшчэння па лакацыі з выглядам ад першай асобы, рэалізавана узаемадзеянне з аб’ектамі і кіраванне транспартным сродкам[12].
З прычыны выкарыстання кросбраўзэрнай тэхналогіі WebGL, Blend4Web працуе ва ўсіх асноўных[13] браўзэрах, у тым ліку на мабільных прыладах. Тым не менш, у браўзэрах з эксперыментальнай рэалізацыяй стандарту WebGL, такіх як Internet Explorer, магчымасці Blend4Web падтрымліваюцца не цалкам[14].
Сярод нетрывіяльных для браўзэрных фрэймворкаў асаблівасцяў называюцца наступныя: аптымізацыя метадам камбінавання выклікаў адмалеўкі, аптымізацыя метадам адсячэння схаваных аб’ектаў, вынясенне фізічных разлікаў у асобны паток выканання, імітацыі паводзінаў марскіх хваляў[15].
У версіі 14.09 у Blend4Web была рэалізавана магчымасць рэалізацыі інтэрактыўнасці ў 3D-сцэнах з дапамогай інструмента для візуальнага праграмавання. Інструмент нагадвае рэдактар логікі убудаванага ігравога рухавіка Blender, у прыватнасці, у ім, як і ў BGE, выкарыстоўваюцца візуальныя лагічныя блокі, якія выстройваюцца ў інтэрфейсе Blender. Анімацыйныя паслядоўнасці, створаныя мастаком, прайграваюцца ў адказ на ўзаемадзеянне карыстальніка з тымі ці іншымі трохмернымі аб’ектамі[16][17].
Пачынаючы з версіі 15.03 Blend4Web падтрымлівае далучэнне двухмерных HTML-элементаў (напрыклад, інфармацыйных вокнаў) да 3D-аб’ектаў (так званыя анатацыі), а таксама капіраванне аб’ектаў падчас працы дадатка («інстанцыраванне», англ.: instancing)[18].
Сярод эфектаў на аснове постапрацоўкі падтрымліваюцца свячэнне паверхні (англ.: glow), засвечванне яркім святлом (bloom), глыбіня рэзкасці камеры, змрочныя прамяні, размыцце пры руху і ўзаемнае зацяненне (SSAO)[19].
Дадатак для Blender напісаны на Python і C, і можа быць скампілявана для платформаў Linux x86/x64, Mac OS X x64 і MS Windows x86/x64.
Профіль налад Blend4Web актывуецца ў наладах адона. Пры пераключэнні ў профіль адбываецца перабудоўванне інтэрфейсу Blender з адначасовым выдаленнем ўсіх налад, якія не падтрымліваюцца[20].
Blend4Web падтрымлівае шэраг спецыфічных для Blender функцый, такіх як вузлавой рэдактар матэрыялаў (інструмент для візуальнага праграмавання шэйдараў) і сістэма часціц[21]. Таксама маецца пачатковая падтрымка рэдактара нелінейнай анімацыі (NLA) у складзе пакета Blender, прызначанага для стварэння простых сцэнарыяў.
Для атрымання падобнага візуальнага выніку ў рэдактары і ў браўзэры (WYSIWYG), карыстальнікам рэкамендуецца перамыкацца ў рэжым рэндэрынгу GLSL, які ёсць ў Blender[22].
Як і ўбудаваны ігравы рухавік Blender (Blender Game Engine, BGE), Blend4Web загружае падрыхтаваныя ў Blender дадзеныя сцэн без выкарыстання якога-небудзь прамежкавага рэдактара[5]. Дадаткі на аснове Blend4Web прызначаны для працы ў браўзэрах, у той час як выкананыя файлы BGE запускаюцца па-за браўзэраў[23][24]. API Blend4Web рэалізаваны на JavaScript, у адрозненне ад заснаваных на Python API убудаванага рухавіка Blender. Замест візуальнага рэдактара логікі BGE, які не падтрымліваецца ў Blend4Web, у апошнім мяркуецца выкарыстанне стандартных падыходаў, прынятых у вэб-распрацоўцы.
У Unity магчымасць экспарту ў WebGL маецца з версіі 5[25]. Рэалізацыя падтрымкі WebGL, тым не менш, носіць эксперыментальны характар, у прыватнасці, у WebGL-версіі ў бліжэйшай перспектыве не плануецца падтрымка мабільных прылад, сістэмы пазіцыянавання крыніц гуку, відэа-тэкстур[26].
WebGL-бібліятэка Three.js патрабуе напісання праграмнага кода для выканання трывіяльных задач, што павышае парог уваходжання і падаўжае навучанне; у Blend4Web большая частка работ па падрыхтоўцы анлайн-прэзентацый не патрабуе праграмавання[27].
НАСА распрацавала інтэрактыўны вэб-дадатак да трэцяй гадавіны з дня пасадкі марсахода К’юрыёсіці[28]. У дадатку[29], створаным на аснове Blend4Web, рэалізаваны рух ровера, кіраванне камерамі і маніпулятарам, а таксама ўзноулены некаторыя вядомыя падзеі місіі[30][31]. Дадатак быў прадстаўлены ў пачатку секцыі WebGL на канферэнцыі SIGGRAPH 2015[32].