Blend4Web

**Blend4Web** — адкрыты фрэймворк, прызначаны для стварэння і адлюстравання інтэрактыўнай трохмернай графікі ў браўзэрах, які прадугледжвае выкарыстанне для стварэння кантэнту адкрыты пакет 3D-мадэлявання Blender.

Выпушчаны ў 2014 годзе, распрацоўшчык — расійская фірма «Трыумф», пастаўляе таксама камерцыйную ліцэнзію прадукту (якая ўключае прыклады з зыходнымі кодамі і паслугі па тэхнічнай падтрымцы).

## Агляд 
Падрыхтоўка аўдые-візуальнага кантэнту для Blend4Web ажыццяўляецца ў пакеце 3D-мадэлявання і анімацыі Blender. Кантэнт прайграваецца з дапамогай WebGL, Web Audio і іншых стандартных браузерных тэхналогій, без выкарыстання якіх-небудзь пашырэнняў.

Фреймворк распаўсюджваецца на ўмовах падвойнага ліцэнзавання, пад адкрытай GPLv3 і камерцыйнай ліцэнзіямі. Зыходны код знаходзіцца ў рэпазіторыі на GitHub.

3D-сцэна ствараецца ў Blender і экспартуецца ў выглядзе файла ў фармаце JSON і бінарнага файла для наступнай загрузкі вэб-дадаткам. Сцэна можа быць экспартавана ў выглядзе адзінага самадастатковага HTML-файла, у які пакуюцца экспартаваныя дадзеныя, карыстацкі інтэрфейс вэб-плэера і выкананы код. Экспарт у HTML фармаце разглядаецца як найбольш просты спосаб работы з Blend4Web. Выніковы файл з мінімальным памерам каля 1 МБ можа быць размешчаны на вэб-старонцы з дапамогай стандартнага элемента iframe. Вэб-дадаткі на аснове Blend4Web могуць быць разгорнутыя ў папулярных сацыяльных сетках, такіх як Facebook і У Кантакце.

У склад праграмных кампанентаў Blend4Web ўваходзяць бібліятэкі JavaScript, дадатак да Blender і набор інструментаў для налады параметраў 3D-сцэн, адладкі і аптымізацыі.

Распрацоўка Blend4Web была пачатая маскоўскай кампаніяй «Трыумф» у 2010 годзе. Першы публічны рэліз адбыўся 28 сакавіка 2014 года.

## Асаблівасці 
Фрэймворк змяшчае шэраг кампанентаў, звычайна прысутных у ігравых рухавіках, уключаючы сістэму пазіцыянавання крыніц гуку, фізічны рухавік (форк фізічнага рухавіка Bullet, размешчаны на JavaScript), сістэму анімацыі і пласт абстракцыі для праграмавання ігравой логікі.

На кожны аб’ект можа быць прызначана да 8 анімацый рознага тыпу, у тым ліку шкілетную і вяршынную анімацыю. Хуткасць і кірунак анімацыі, а таксама параметры сістэм часціц (памер, пачатковая хуткасць і колькасць) могуць быць зададзены з дапамогай API.

Падтрымліваюцца дынамічная загрузка і выгрузка дадзеных, карты асвятлення, маецца магчымасць сімуляцыі падпаверхневага рассейвання.

Маюцца рашэнні для рэндэрынгу вонкавых сцэн, уключаючы сімуляцыю ўздзеяння ветру, сімуляцыю вады, атмасферныя эфекты. Работа названага функцыяналу прадэманстравана ў дэма-роліку «Ферма», у якім таксама прысутнічаюць шматлікія аніміраваныя неігравыя персанажы, рэалізавана магчымасць перамяшчэння па лакацыі з выглядам ад першай асобы, рэалізавана узаемадзеянне з аб’ектамі і кіраванне транспартным сродкам.

З прычыны выкарыстання кросбраўзэрнай тэхналогіі WebGL, Blend4Web працуе ва ўсіх асноўных браўзэрах, у тым ліку на мабільных прыладах. Тым не менш, у браўзэрах з эксперыментальнай рэалізацыяй стандарту WebGL, такіх як Internet Explorer, магчымасці Blend4Web падтрымліваюцца не цалкам.

Сярод нетрывіяльных для браўзэрных фрэймворкаў асаблівасцяў называюцца наступныя: аптымізацыя метадам камбінавання выклікаў адмалеўкі, аптымізацыя метадам адсячэння схаваных аб’ектаў, вынясенне фізічных разлікаў у асобны паток выканання, імітацыі паводзінаў марскіх хваляў.

У версіі 14.09 у Blend4Web была рэалізавана магчымасць рэалізацыі інтэрактыўнасці ў 3D-сцэнах з дапамогай інструмента для візуальнага праграмавання. Інструмент нагадвае рэдактар логікі убудаванага ігравога рухавіка Blender, у прыватнасці, у ім, як і ў BGE, выкарыстоўваюцца візуальныя лагічныя блокі, якія выстройваюцца ў інтэрфейсе Blender. Анімацыйныя паслядоўнасці, створаныя мастаком, прайграваюцца ў адказ на ўзаемадзеянне карыстальніка з тымі ці іншымі трохмернымі аб’ектамі.

Пачынаючы з версіі 15.03 Blend4Web падтрымлівае далучэнне двухмерных HTML-элементаў (напрыклад, інфармацыйных вокнаў) да 3D-аб’ектаў (так званыя анатацыі), а таксама капіраванне аб’ектаў падчас працы дадатка («інстанцыраванне», ).

Сярод эфектаў на аснове постапрацоўкі падтрымліваюцца свячэнне паверхні (), засвечванне яркім святлом (bloom), глыбіня рэзкасці камеры, змрочныя прамяні, размыцце пры руху і ўзаемнае зацяненне (SSAO).

## Інтэграцыя з Blender 
Дадатак для Blender напісаны на Python і C, і можа быць скампілявана для платформаў Linux x86/x64, Mac OS X x64 і MS Windows x86/x64.

Профіль налад Blend4Web актывуецца ў наладах адона. Пры пераключэнні ў профіль адбываецца перабудоўванне інтэрфейсу Blender з адначасовым выдаленнем ўсіх налад, якія не падтрымліваюцца.

Blend4Web падтрымлівае шэраг спецыфічных для Blender функцый, такіх як вузлавой рэдактар матэрыялаў (інструмент для візуальнага праграмавання шэйдараў) і сістэма часціц. Таксама маецца пачатковая падтрымка рэдактара нелінейнай анімацыі (NLA) у складзе пакета Blender, прызначанага для стварэння простых сцэнарыяў.

Для атрымання падобнага візуальнага выніку ў рэдактары і ў браўзэры (WYSIWYG), карыстальнікам рэкамендуецца перамыкацца ў рэжым рэндэрынгу GLSL, які ёсць ў Blender.

## Параўнанне з аналагамі 
### Blender Game Engine 
Як і ўбудаваны ігравы рухавік Blender (Blender Game Engine, BGE), Blend4Web загружае падрыхтаваныя ў Blender дадзеныя сцэн без выкарыстання якога-небудзь прамежкавага рэдактара. API Blend4Web рэалізаваны на JavaScript, у адрозненне ад заснаваных на Python API убудаванага рухавіка Blender. Замест візуальнага рэдактара логікі BGE, які не падтрымліваецца ў Blend4Web, у апошнім мяркуецца выкарыстанне стандартных падыходаў, прынятых у вэб-распрацоўцы.

### Unity 
У Unity магчымасць экспарту ў WebGL маецца з версіі 5. Рэалізацыя падтрымкі WebGL, тым не менш, носіць эксперыментальны характар, у прыватнасці, у WebGL-версіі ў бліжэйшай перспектыве не плануецца падтрымка мабільных прылад, сістэмы пазіцыянавання крыніц гуку, відэа-тэкстур.

### Three.js 
WebGL-бібліятэка Three.js патрабуе напісання праграмнага кода для выканання трывіяльных задач, што павышае парог уваходжання і падаўжае навучанне; у Blend4Web большая частка работ па падрыхтоўцы анлайн-прэзентацый не патрабуе праграмавання.

## Вядомыя выпадкі выкарыстання 
НАСА распрацавала інтэрактыўны вэб-дадатак да трэцяй гадавіны з дня пасадкі марсахода К’юрыёсіці. У дадатку, створаным на аснове Blend4Web, рэалізаваны рух ровера, кіраванне камерамі і маніпулятарам, а таксама ўзноулены некаторыя вядомыя падзеі місіі. Дадатак быў прадстаўлены ў пачатку секцыі WebGL на канферэнцыі SIGGRAPH 2015.

## Спасылкі 
* 

Катэгорыя:Кросплатформавае праграмнае забеспячэнне
Катэгорыя:Вэб-распрацоўка