Blend4Web

Blend4Web是用于创建和在网页浏览器中显示交互式三维计算机图形的开源框架。

概述 
Blend4Web 框架利用Blender编辑三维场景。内容呈现依赖WebGL、网络音频和其他网络标准，无需使用插件。

它具有双重许可证，分发基于开源GPLv3以及商业许可证；源代码托管在GitHub上。

三维场景可以在Blender中准备，然后导出为一对JSON和二进制文件在网络应用程序中加载。它也可以被导出为一个单一自包含的HTML文件，其中导出的数据，网络播放器GUI和引擎本身被包装在其中。HTML选项被认为是使用Blend4Web的最简单的方法。生成的文件，据上报的最小大小为 1 Mb，可以使用标准 iframe HTML 元素嵌入在网页中。Blend4Web 驱动的网络应用程序可以部署在热门社交网站比如 Facebook 等。

Blend4Web工具链包括JavaScript库，Blender的插件和调整3D场景参数，调试和优化的工具集。

Blend4Web发展开始在2010年由总部设在莫斯科的公司被称为Triumph。它首次公开发布2014年3月28日

2017年底，项目创始人Yuri和Alex Kovelenov退出Triumph并开始开发新的WebGL框架Verge3D。

功能 
框架有大量的典型组件在游戏引擎发现，包括定位音频系统、物理引擎 （Bullet分叉移植到 JavaScript）、 动画系统和游戏逻辑编程抽象层。

多达8个不同类型的动画可以被分配到一个单独的物体，包括骨骼动画和每个顶点的动画。速度和动画的方向（向前/向后播放），以及粒子的系统参数（大小，初始速度和计数）虽然可以在API来改变。

在其他支持的功能有场景数据动态加载和卸载，次表面散射模拟和基于图像的照明。

用于扩展渲染的室外环境，包括叶风相互作用、 水、 大气和太阳光模拟存在一些的预置选项。演示这些影响的一个例子是"农场"技术演示，还设有多个动画的 NPC 和行走能力，物体进行交互与以第一人称模式开车。

基于所述跨浏览器的WebGL的API，Blend4Web运行在大多数的网络浏览器，包括移动装置。还有一些注意事项虽然对WebGL实验支持的浏览器，如Internet Explorer。也有开发应用程序运行的Tizen系统设备，如三星Gear S2智能手表。

高级的功能包括绘制调用批处理、 隐藏表面测定、线程的物理模拟和海洋仿真。

在14.09版本中，Blend4Web推出能添加交互性到三维场景中的可视化编程工具。这个工具是让人想起了Blender游戏引擎的逻辑编辑器，因为它使用了放在Blender里面逻辑块。当用户与预定义的三维物体进行交互时，它能够播放由艺术家创作的动画轨。

自15.03版，Blend4Web已经支持HTML连接元件（如信息窗口）三维物体（“注解”）和运行时复制物体（“实例化”）。

在后期处理特效，支持以下功能：发光，高光，景深，云隙光，运动模糊和屏幕空间环境光遮蔽。

自 2015年年底以来，已支持了虚拟现实设备。具体来说，Oculus Rift头戴式显示器工作在实验 WebVR API。基于手柄 API，软件现在也包括初步支持游戏手柄。

Blender集成 
Blender插件使用 Python 和 C 编写，可以在 Linux x86/x64、 OS X x64 和 MS Windows x86/x64 平台上编译。

Blend4Web 特定的配置文件可以在插件设置中激活。切换到此配置文件时，搅拌机界面更改，以便只显示与 Blend4Web 有关的设置。

Blend4Web 支持设置Blender特定节点材质编辑器 （视觉着色编程的一种工具）和粒子系统等的功能。还有对Blender的非线性动画 (NLA) 编辑器的基本支持用于创建简单的场景。

Blend4Web基本上是基于Blender实时GLSL渲染引擎，用户建议使用启用所见即所得编辑。

与相关的软件的比较

Blender游戏引擎 
类似于Blender游戏引擎 (BGE)，Blend4Web从Blender场景中直接加载与播放场景数据，无需使用中间的编辑器。作为一个网络框架，它的目标是网络浏览器，而BGE可执行文件必须离线运行。它提供了它自己的 JavaScript API 有别于 BGE 基于 Python 的 API。提出一种网络开发方法而不是逻辑块的组合和在 BGE 使用 Python 脚本。

Unity 
Unity从版本 5 提供了 WebGL 的生成选项。一个Unity的游戏开发者的一项调查进行比较这两个引擎。使用 Blend4Web 和Unity创建两个交互基于网络演示文稿的涡扇发动机。虽然作者指出这两个引擎产生类似的视觉质量，Unity的 WebGL 生成文件总大小有 142 Mb（未压缩），而 Blend4Web 导出的 HTML 文件相同的场景只有 1.8 Mb（未压缩）。

根据他们的WebGL的路线图，Unity 并没有计划在不久的将来支持移动设备，定位音频系统和视频纹理。

Three.js 
流行的WebGL库，three.js所报告要求对琐碎的任务编程，因此，要求更多的用户能力和提供一个缓慢的学习曲线。在Blend4Web，大多数准备在线演示的工作可以在没有任何编程下完成。

值得注意的使用 
美国国家航空航天局开发交互式网络应用程序中称为体验好奇号，想庆祝三周年好奇号漫游车在火星上着陆。这基于 Blend4Web 的应用程序使它能够操作探测车，控制它的照相机和机械臂并再现了一些火星科学实验室任务的杰出事件。在 SIGGRAPH 2015 的 WebGL 部分开头介绍应用。

Dassault Systèmes 提出了一种交互式的贺卡，以迎接顾客即将到来的圣诞假期。

绿色和平组织创建交互式三维信息图表来支持绿色和平组织在俄罗斯的排毒运动。

Tallink 推荐其 MS 巨星船舶，允许访问者浏览的这艘船的详细信息的交互式三维演示。

参考文献

外部链接 
 
 用户手册

跨平台軟體
繪圖函式庫
JavaScript函式庫
自由三维图形软件
網站開發