Blend4Web是用於創建和在網頁瀏覽器中顯示交互式三維計算機圖形的開源框架。
概述
Blend4Web 框架利用Blender編輯三維場景。內容呈現依賴WebGL、網絡音頻和其他網絡標準,無需使用插件[2]。
它具有雙重許可證,分發基於開源GPLv3以及商業許可證;源代碼託管在GitHub上[3]。
三維場景可以在Blender中準備,然後導出為一對JSON和二進制文件在網絡應用程序中加載。它也可以被導出為一個單一自包含的HTML文件,其中導出的數據,網絡播放器GUI和引擎本身被包裝在其中[4]。HTML選項被認為是使用Blend4Web的最簡單的方法[5]。生成的文件,據上報的最小大小為 1 Mb,可以使用標準 iframe HTML 元素嵌入在網頁中[6]。Blend4Web 驅動的網絡應用程序可以部署在熱門社交網站比如 Facebook 等[7]。
Blend4Web工具鏈包括JavaScript庫,Blender的插件和調整3D場景參數,調試和優化的工具集。
Blend4Web發展開始在2010年由總部設在莫斯科的公司被稱為Triumph。它首次公開發布2014年3月28日[8]
2017年底,項目創始人Yuri和Alex Kovelenov退出Triumph並開始開發新的WebGL框架Verge3D[9]。
功能
框架有大量的典型組件在遊戲引擎發現,包括定位音頻系統、物理引擎 (Bullet分叉移植到 JavaScript)、 動畫系統和遊戲邏輯編程抽象層[10]。
多達8個不同類型的動畫可以被分配到一個單獨的物體,包括骨骼動畫和每個頂點的動畫。速度和動畫的方向(向前/向後播放),以及粒子的系統參數(大小,初始速度和計數)雖然可以在API來改變[11]。
在其他支持的功能有場景數據動態加載和卸載,次表面散射模擬和基於圖像的照明[12]。
用於擴展渲染的室外環境,包括葉風相互作用、 水、 大氣和太陽光模擬存在一些的預置選項。演示這些影響的一個例子是"農場"技術演示,還設有多個動畫的 NPC 和行走能力,物體進行交互與以第一人稱模式開車[13]。
基於所述跨瀏覽器的WebGL的API,Blend4Web運行在大多數[14]的網絡瀏覽器,包括移動裝置[15]。還有一些注意事項雖然對WebGL實驗支持的瀏覽器,如Internet Explorer[16]。也有開發應用程序運行的Tizen系統設備,如三星Gear S2智能手錶[17]。
高級的功能包括繪製調用批處理、 隱藏表面測定、線程的物理模擬和海洋仿真[18]。
在14.09版本中,Blend4Web推出能添加交互性到三維場景中的可視化編程工具[19][20]。這個工具是讓人想起了Blender遊戲引擎的邏輯編輯器,因為它使用了放在Blender裡面邏輯塊。當用戶與預定義的三維物體進行交互時,它能夠播放由藝術家創作的動畫軌[21]。
自15.03版,Blend4Web已經支持HTML連接元件(如信息窗口)三維物體(「註解」)和運行時複製物體(「實例化」)[22]。
在後期處理特效,支持以下功能:發光,高光,景深,雲隙光,運動模糊和屏幕空間環境光遮蔽[23]。
自 2015年年底以來,已支持了虛擬現實設備。具體來說,Oculus Rift頭戴式顯示器工作在實驗 WebVR API[24]。基於手柄 API,軟件現在也包括初步支持遊戲手柄[25]。
Blender集成
Blender插件使用 Python 和 C 編寫,可以在 Linux x86/x64、 OS X x64 和 MS Windows x86/x64 平台上編譯。
Blend4Web 特定的配置文件可以在插件設置中激活。切換到此配置文件時,攪拌機界面更改,以便只顯示與 Blend4Web 有關的設置[26]。
Blend4Web 支持設置Blender特定節點材質編輯器 (視覺着色編程的一種工具)[27]和粒子系統[28]等的功能。還有對Blender的非線性動畫 (NLA) 編輯器的基本支持用於創建簡單的場景。
與相關的軟件的比較
類似於Blender遊戲引擎 (BGE),Blend4Web從Blender場景中直接加載與播放場景數據,無需使用中間的編輯器[5]。作為一個網絡框架,它的目標是網絡瀏覽器,而BGE可執行文件必須離線運行[30][31]。它提供了它自己的 JavaScript API 有別於 BGE 基於 Python 的 API。提出一種網絡開發方法而不是邏輯塊的組合和在 BGE 使用 Python 腳本。
Unity從版本 5[32] 提供了 WebGL 的生成選項。一個Unity的遊戲開發者的一項調查進行比較這兩個引擎[33]。使用 Blend4Web 和Unity創建兩個交互基於網絡演示文稿的渦扇發動機。雖然作者指出這兩個引擎產生類似的視覺質量,Unity的 WebGL 生成文件總大小有 142 Mb(未壓縮),而 Blend4Web 導出的 HTML 文件相同的場景只有 1.8 Mb(未壓縮)。
流行的WebGL庫,three.js所報告要求對瑣碎的任務編程,因此,要求更多的用戶能力和提供一個緩慢的學習曲線。在Blend4Web,大多數準備在線演示的工作可以在沒有任何編程下完成[36][37]。
值得注意的使用
美國國家航空航天局開發交互式網絡應用程序中稱為體驗好奇號,想慶祝三周年好奇號漫遊車在火星上着陸[38]。這基於 Blend4Web 的應用程序[39]使它能夠操作探測車,控制它的照相機和機械臂並再現了一些火星科學實驗室任務的傑出事件[40][41]。在 SIGGRAPH 2015 的 WebGL 部分開頭介紹應用[42]。
Dassault Systèmes 提出了一種交互式的賀卡,以迎接顧客即將到來的聖誕假期[43]。
綠色和平組織創建交互式三維信息圖表來支持綠色和平組織在俄羅斯的排毒運動[44]。
Tallink(頁面存檔備份,存於網際網路檔案館) 推薦其 MS 巨星船舶,允許訪問者瀏覽的這艘船的詳細信息的交互式三維演示[45]。
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.