Verge3D 2.0 for Blender Released

Meet the first major update of Verge3D for Blender which offers many new features including those incorporated from the previously released Verge3D for 3ds Max. We reworked PBR, added 7 more puzzles, created nodes for reflection and refraction and fixed many issues to make your WebGL adventure as comfortable as possible.

Physically based rendering

First and foremost, we reworked Verge3D PBR implementation: the image-based lighting and roughness representation now follow the Cycles renderer as close as possible. As a result, physically based rendering has been brought to entirely new level.

The Verge3D PBR system matches glTF 2.0 standard, with occlusion, roughness and metallic maps packed in the red, green and blue texture channels respectively. Such maps can be easily prepared with specialized tools such as Substance Painter and saved with glTF preset.

Verge3D PBR system explained in a single pic. Click to enlarge.

On a side note, equirectangular world textures are now supported alongside with the previously available cube maps. Using equirectangular textures is more convenient with regards to our Cycles-based PBR implementation – you can just use the same texture for world background and for PBR materials.

The Fallout-like Suzanne model below demonstrates the results. Thanks to Puzzles, it is clickable – turn the sound on!

The source file for the above mentioned example is available in the Verge3D distribution for you to play with.


Traditionally, each new release brings a bunch of new puzzles booked up by our users on the forums. Now your apps can be wired for sound without coding (load, play, pause and rewind puzzles are all available).

Sound puzzles. Notice that the after…do puzzle can now be inlined.

The clone object puzzle basically does what its name implies.

This is how you clone an object to 9×9 array.
BTW, the new default cube is covered with a fancy reflective metal and features Suzanne engraving.

Procedural animations are better done if time between animation frames is properly measured. For this purpose we implemented the every frame and elapsed puzzles.

Every frame coupled with the elapsed puzzle allows for smoother, frame-independent animations.

From a programmer’s point of view, Puzzles can now be attached to a custom application. This is facilitated by the AppPuzzles class which extends the original App class, with ExternalInterface namespace now attached to the AppPuzzles instance. The corresponding example application was updated to reflect these changes.

Rendering is now started only when the entire app is loaded including the generated Puzzle script. This way we got rid of flickering and other race condition issues that were happening in some cases. Also the when clicked puzzle now works on the basis of touchend event instead of touchstart on mobile devices.

Finally, the interface icons for the Puzzles editor and the fullscreen button were redesigned a bit.

Other features

We supported camera parenting to other objects. This way you can animate camera position and allow user control at the same time.

For your convenience, apps are now opening in a new browser tab when launching upon from the App Manager.

To help for easier reflection and refraction effects, a resource file named blender_nodes.blend is available in the application/materials folder. Currently it contains two ready-to-use node setups which you can plug in your materials.

Reflection and refraction groups found in blender_nodes.blend are rescuing you from hardcore math.

Refraction particularly can be used for creating glass-like materials such as the one pictured below. We have updated our material library with a ready-made glass material too.

Stanford bunny entered stealth mode.
Stanford bunny entered stealth mode. Click to run the live demo.

And, as you might have already noticed, we redesigned the preloader which now runs on top of light background.

Notable bug fixes

Here are some issues you helped us to unravel:

  • Fixed code exception occurred when the browser console is open or the browser window is resized.
  • Fixed the issue with endlessly stretched iframes when viewed on iOS devices.
  • Fixed issue observed for parented objects if they are non-uniformly scaled.
  • Fixed issue when exporting textures failed under Windows.
  • Lines are much better rendered on iOS devices.
  • Now you can run material node animation independently for each object, even if the material is shared between objects.

In closing

For those who missed it, the Beginner’s Guide is available which briefly covers all Verge3D topics from installation and basic usage to updating. We are always glad to hear your feedback on the forums!