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游戏引擎 (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，大多数准备在线演示的工作可以在没有任何编程下完成。