Jump to content

Blend4Web

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by SantaWinsAgain (talk | contribs) at 16:02, 19 June 2015 (some reformatting). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

  • Comment: @FoCuSandLeArN Hello! According to notability criteria WP:GNG, this topic is suitable to be a separate article. This article has much more coverage than other articles about similar 3D web tools (both free and commercial), which nevertheless were accepted in Wikipedia. See for example GLGE, Clara.io, OSG.JS, Cl3ver, CopperLicht. Thanks for your time! SantaWinsAgain (talk) 13:37, 11 June 2015 (UTC)
  • Comment: Has some coverage, but I'm inclined to say it's not enough to establish this as notable. FoCuSandLeArN (talk) 23:50, 10 June 2015 (UTC)
  • Comment: OK, so I need to wait until Blend4Web becomes more popular. SantaWinsAgain (talk) 09:38, 1 December 2014 (UTC)
  • Comment: The blender wiki and help topics on how to use Blend4Web are not considered reliable sources. BlenderNation might be considered valid, but I still think this draft needs more reliable third-party sources. Primefac (talk) 21:47, 22 November 2014 (UTC)
  • Comment: Thanks for pointing these defects out. I tried to correct them, please review. SantaWinsAgain (talk) 14:45, 6 October 2014 (UTC)
  • Comment: We require references from significant coverage about the topic of the article, and independent of it, and in WP:RS please. See WP:42. Please drop those references that do not meet these criteria. They affect acceptance adversely.
    Despite wishing for references, sometimes things go too far. Items such as " LOD system.[10][3][14][15][16] " and "programming.[19][20][21][22][23][24]" are examples of WP:CITEKILL and make the text harder to read than we need. One reference per fact is optimal, two are acceptable, 3 are allowable. More than three is too much. Consider redeploying the references you drop for other purposes Fiddle Faddle 17:33, 3 October 2014 (UTC)

Blend4Web
Developer(s)Triumph LLC
Stable release
15.05 / May 26, 2015; 9 years ago (2015-05-26)
Written inJavaScript, Python, C, C++
Type3D engine
LicenseGPLv3 or commercial
Websitewww.blend4web.com

Blend4Web is an open source framework for creating and displaying interactive 3D computer graphics in web browsers.

Overview

The Blend4Web framework leverages Blender for editing 3D scenes.[1] Content rendering relies on WebGL, Web Audio and other web standards, without the use of plugins.

It is dual-licensed and is distributed under an open source GPLv3 and a commercial license; the source code is hosted on GitHub.[2]

A 3D scene can be prepared in Blender and then exported as a pair of JSON and binary files for loading into a web application. It can be also exported as a single self-contained HTML file into which the exported data, the web player GUI and the engine itself are packed. The latter option is considered as the simplest way to use Blend4Web.[3] The resulting file (which is reported to have a minimum size of 1 Mb) can be embedded into a web page using the standard iframe HTML element.[4]

The Blend4Web toolchain consists of JavaScript libraries, a Blender addon and a set of CLI and GUI tools for tweaking 3D scene parameters, debugging and optimization.

According to the official website,[5] Blend4Web development was started by a Moscow-based company called Triumph in 2010. It was first publicly released on March 28, 2014.

Features

Blend4Web supports a set of Blender-specific features such as the node material editor (a tool for visual shader programming) and the particle system.[6] There is a basic support for Blender's non-linear animation (NLA) editor for creating simple scenarios.

A number of components are present that are typical for game engines including positional audio system, physics engine (a fork of Bullet ported to JavaScript), animation system and abstraction layer for game logic programming.[7]

Up to 8 different types of animations can be assigned to a single object, including skeletal and per-vertex animation. The speed and the direction of animation (forward/backward play), as well as the particle system parameters (size, initial velocity and count) can be changed though the APIs.

Among other supported features are scene data dynamic loading and unloading, subsurface scattering simulation and image-based lighting.[8]

Some out-of-box options exist for rendering extended outdoor environments including foliage-wind interaction, water, atmosphere and sunlight simulation; "The Farm" tech demo features multiple animated NPCs and the ability of first-person walking, interacting with objects, driving a vehicle.[9]

Being based on cross-browser WebGL API, Blend4Web runs in the majority[10] of web browsers including mobile ones. There are some caveats though for browsers with experimental WebGL support such as Internet Explorer and Safari.[11]

Advanced features include draw call batching, hidden surface determination, threaded physics simulation and ocean simulation.[12]

Since version 15.03, Blend4Web supports attaching HTML elements such as information windows to 3D objects ("annotations") and copying objects in run time ("instancing").[13]

Among post-processing effects the following features are supported: glow, bloom, depth of field, crepuscular rays, motion blur and screen space ambient occlusion.[14]

Blender Integration

The Blender addon is written in Python and C and can be compiled for Linux x32/64, OS X x64 and MS Windows x32/64 platforms.

The Blend4Web-specific profile is still under experimental status and can be activated in the add-on settings. When switching this profile, the Blender interface changes so that it only reveals those settings that are relevant to Blend4Web.[15]

Comparison with Relevant Software

Blender Game Engine

Similar to the Blender Game Engine (BGE), Blend4Web directly loads and plays back scene data extracted from Blender scenes, without the use of an intermediate editor.[3] Being a web framework it targets web browsers while a Blender Game Engine executable must be run offline.[16][17] It provides its own JavaScript API that is different from Python-based API of BGE. A web development approach is proposed instead of a combination of logic blocks and Python scripting used in BGE.

Unity

Unity offers a WebGL build option since its version 5.[18] A survey by Andrey Prakhov, a Unity game developer and the author of several Blender books, has been performed with the goal of comparison these two engines.[19] An interactive web-based presentation of turbofan has been created with both Blend4Web and Unity. Although the author noticed similar visual quality of the final scene, Unity's WebGL build had the total file size of 142 Mb (uncompressed) while the Blend4Web's exported HTML file for the same scene appeared to be only 1.8 Mb.

Three.js

The popular WebGL library, Three.js, is reported to require programming for trivial tasks, thus requiring more competence from its users and offering a longer learning curve. In Blend4Web, the most work on preparing online presentations can be done without programming.[20]

NLA Script

With version 14.09 Blend4Web introduced a possibility to add interactivity to 3D scenes by a visual programming tool called NLA Script.[21][22] The tool is reminiscent of BGE's logic editor as it is uses a finite number of logic blocks that are placed inside the Blender UI. NLA Script is based on the Blender's in-built non-linear animation editor (NLA) and plays back the artist-prepared animation tracks when the user interacts with the predefined 3D objects.

The simplest user-interaction example can be programmed with NLA Script as follows:[23]

Slot 1: “Select and Jump”. Action programmed: if the object with the given name is clicked, then go to the defined slot (named Slot 2).
Slot 2: “Play”. Action programmed: play the timeline animation between two defined markers.

The two above-mentioned blocks can be replaced with a single syntactic sugar “Select and Play” block.

See also

References

  1. ^ "Blend4Web: the Open Source Solution for Online 3D". Mozilla Hacks. Retrieved 2014-11-14.
  2. ^ "Blend4Web on GitHub". GitHub.com/TriumphLLC. Retrieved 2014-08-11.
  3. ^ a b "Blend4Web, an Interactive 3D Viewer". BlenderNation.com. Retrieved 2014-08-11.
  4. ^ "Blend4Web: способ вставить 3D-содержание на веб-страницу с использованием WebGL". Belursus.info. Retrieved 2014-09-04.
  5. ^ "Blend4Web Official Site - About". Blend4Web.com. Retrieved 2014-08-11.
  6. ^ "3D-Web-Applikationen mit Blend4Web erstellen". entwickler.de. Retrieved 2015-05-29.
  7. ^ "Представлен Blend4Web, движок для создания браузерных 3D-приложений". OpenNet.ru. Retrieved 2015-06-18.
  8. ^ "Blend4Web update adds improved lighting and more". BlenderNation.com. Retrieved 2014-08-13.
  9. ^ "Blend4Web: "The Farm" - Demo einer kleinen virtuellen Welt". Echt Virtuell. Retrieved 2014-09-18.
  10. ^ "Can I use WebGL?". caniuse.com. Retrieved 2014-08-15.
  11. ^ "Blend4Web: енджин за създаване на браузърни 3D сцени и приложения". Kaldata: Software, Hardware and Game Reviews. Retrieved 2014-09-04.
  12. ^ Cozzi, Patrick. WebGL Insights. CRC Press, 2015 ISBN 978-1-49-871607-9.
  13. ^ "Blend4web: annotations interactives et autres nouveautés". Greg G.d.Bénicourt. Retrieved 2015-05-29.
  14. ^ "Релиз движка для создания браузерных 3D-приложений Blend4Web 15.05". OpenNet.ru. Retrieved 2015-06-18.
  15. ^ "Blend4Web – Must-Have for Blender Fans!". 3ddey.com. Retrieved 2015-05-29.
  16. ^ "Blender en tu Web: Blend4Web". PatrimonioVirtual.com. Retrieved 2014-08-13.
  17. ^ "Blend4Web: Ferramenta publica projetos do Blender para Web". Allan Brito. Retrieved 2015-05-29.
  18. ^ "Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers". The Mozilla Blog. Retrieved 2015-06-16.
  19. ^ "Blend4Web vs Unity. Битва за Интернет". Habrahabr.ru. Retrieved 2015-06-16.
  20. ^ "The Good, The Bad and the WebGL-y". benchung.com. Retrieved 2015-06-19.
  21. ^ "Blend4Web Update: Non Linear Animation and more". BlenderNation.com. Retrieved 2014-09-29.
  22. ^ "Выпущен фреймворк Blend4Web 14.09". digilinux.ru. Retrieved 2014-09-29.
  23. ^ "Blend4Web: обзор новинки отечественного софтопрома". Habrahabr.ru. Retrieved 2015-06-04.


Category:3D scenegraph APIs Category:Cross-platform software Category:Free 3D graphics software Category:Graphics libraries Category:JavaScript libraries Category:Game_engines_for_Linux