We are glad to present the community and the partners with the new 14.09 version of the Blend4Web framework. In this release we have prepared the most significant amount of features starting from the first public release half a year ago. All of this time we have been observing a stable growth of user interest to our product, which confirms the rightness of the principles behind it. Today it becomes obvious that emphasizing openness, independence from cloud services and using the open source tools fully justifies itself.
Visual Logic Editor
Throughout the period after the first release we have been receiving feedback from the community concerning the current Blend4Web functionality. One of the features mostly requested by the community - and absent - was the ability to implement interactivity without any coding. Today as the first step in the direction of creating a visual logic editor we present a new tool - NLA Script.
As is evident from its name this editor is based on the Blender's in-built non-linear animation editor (NLA). This editor is intended for manipulating and synchronizing all the animated scene objects and also supports the playback of audio and particle systems. We have implemented the ability to add interactivity through using interface blocks containing the descriptions of actions taken in response to user actions. The only currently supported user action is mouse click on predefined 3D objects. In response its possible to play back NLA tracks from a certain frame (defined by a marker) - Select, or to move to another block - Jump.
In order to demonstrate the new opening possibilities we present interactive infographic - the presentation of a light helicopter. Besides the now-traditional (for the last demo scenes) photo-realistic graphics achieved by our artists thanks to the visual shader editor, in this app the visual logic editor has been used for the first time (also by artists).
Among the other possible applications of this simple yet effective tool we can list the following: interactive 3D web design, product promotions, learning materials, cartoons with the ability to choose between different story lines, point-and-click games and any other applications previously created with Flash.
It is difficult to overestimate the importance of shadows for image perception. Shadows provide the viewer not only with information about the objects' outline but also about their height and relative position, light source position and so on. The shadow rendering system which has remained intact for a long period of time, has performed a qualitative leap in this release.
For rendering shadows in extended landscapes Blend4Web uses the cascaded shadow maps (CSM) technique. In this release we have simplified the cascade border settings, implemented smooth transitions between them and also added support for fading out the last cascade with distance.
Softened shadows not only look more expressive but also hide the jugged edges inevitable when using image-based techniques. In this release we used percentage-closer filtering (PCF) for rendering softened shadows. The shadow blurriness ratio can be set up separately for the first and the last cascades and automatically interpolated for the others. We have also implemented softened shadows support for transparent objects.
And finally we have implemented settings to fight undesirable self-shadowing artifacts more effectively. These artifacts manifest themselves when an object casts and receives shadows at the same time. Also there is now a possibility to set up the shadow map size.
In order to hide a sharp transition at animation switching (for example a character was running and then stopped abruptly) it was required before to create the corresponding transition animations by hand. Now its history - we have implemented APIs by using which you can make Blend4Web perform the animation mixing automatically.
In this release a new type of animation is added to those already supported by Blend4Web - now you can animate the Value node in node materials. Moreover multiple animated Value nodes are supported in a single material. The new functionality allows to change almost any material parameters freely in real time. Value node animation can also be used in the non-linear animation editor, which gives the possibility to control this process based on user actions - for example to change the helicopter's sheeting camouflage with a mouse click in an interesting way.
The active position of our users helps us to add and improve the engine's functionality. Particularly according to the requests from our users we have added physics support to the standard web player (for the version with separately loaded JSON files). Also the possibility to hide the control panel has been added to the web player. By user request we have implemented a function which automatically applies scale to the object's mesh upon export.
We have extended the functionality of the node editor by implementing some new nodes. Particularly the LEVELS_OF_QUALITY node allows artists to control the material behavior for different quality modes. Node blocks sharing is now possible thanks to the support of node groups. Now you can render certain transparent objects above all the others (e.g. to place markers on a model).
In conclusion we would like to note that our programmers have started to participate in the Blender project. This month the first patch has been accepted to the repository of this wonderful open source 3D modeling suite. This patch corrects the behavior of highlights on transparent surfaces. We hope to deepen and enhance our cooperation with Blender developers and the community.