We are excited to announce a new version of Verge3D, the most powerful toolkit for creating 3D web experiences. With this release we ship an easy-to-use WooCommerce integration module, improved SSAO and outlining, and the support for Blender 2.81’s new shadows. We also implemented many new puzzles and improvements in the visual scripting editor, precise occlusion for annotations and faster ray casting.
WooCommerce Integration
The highly anticipated feature – WooCommerce integration – has been implemented in the WordPress plugin and in Puzzles! See this tutorial on how to use this feature, as well as the video below:
E-commerce-related puzzles were moved into a separate subcategory of the Misc category, which in turn was moved closer to the toolbox bottom.
The upload function of the WordPress plugin now works better and also notifies if there were any errors during upload.
Better Ambient Occlusion
New ambient occlusion algorithm which provides better quality and performance is available in the form of a new puzzle. The old SSAO puzzle is deprecated but will continue to work.
We also enabled SSAO on iOS (previosly it was forced off).
Finally, the SSAO post-effect, as well as screen-space reflection and refraction, will now work for skinned and morphed objects.
Blender-Specific Features
The new shadows introduced in the upcoming Blender 2.81 are now supported. The new system uses the PCF algorithm instead of ESM. Since the new shadows require a lot of samples for quality shadows, they are not that feasible for efficient real-time rendering. We therefore had to optimize this algorithm and implemented an additional setting called Blur Radius to be able to tweak the smoothness.
We significantly increased the consistency of rendering of the speculars in the engine compared to EEVEE viewport.
We fixed the bug when meshes with some modifiers such as Bevel were not properly triangulated. Another fixed bug relates to the attribute optimization feature that incorrectly worked with linked materials or node groups (as in the material library). These two bugs caused loss of tangents and crippled normal mapping.
The engine now won’t crash if the currently unsupported Displacement or Specular EEVEE nodes are present in a shader.
The material panel now has a checkbox for making a material strictly compatible with the glTF 2.0 standard (i.e. without Soft8Soft extensions). For now, only materials with the Principled BSDF node can be converted to become glTF-compliant.
Such shaders are simpler and faster compared to EEVEE-based materials, yet provide decent quality. The node group called Verge3D PBR previously used for creating glTF-compliant materials is now deprecated but will continue to work. The documentation page was updated to reflect the above-mentioned changes.
Finally, the upcoming Blender 2.81’s Noise Texture and Vector Math nodes have been supported.
Puzzles
The download file puzzle was implemented. You can use this puzzle, for example, to save previously taken screenshots, or to save some information in a text file.
Physics puzzles now support multi-material objects. We have also updated the physics demo.
Also, the physics puzzles now won’t crash if no physics module is included in the app. They will instead show a warning.
The puzzle remove object is now available for deleting objects from the scene.
The new query selector puzzle is available in the HTML category. Thanks to this powerful puzzle you can select HTML elements based on their CSS class, attributes/values, tag name, child-parent relation or other criteria.
As a result, all HTML puzzles that previously only accepted the element id, can now be combined with the query selector puzzle for more flexible lookups.
The puzzle set transform now does not modify x, y or z values if these inputs are not explicitly specified (as it was before version 2.15).
The quote symbol (“) can now be used in procedure names.
The print performance info puzzle now displays how much time it took to load the scene. We also made its output more structured.
Puzzles Editor
The button for pausing and resuming the rendering is now available in the Puzzles editor. It may help, particularly, when you’re scripting heavy scenes on a low-end computer.
Also you may use the Ctrl-S shortcut for the Save operation.
User-created entries in the Puzzles Library can now be easily restored after engine update as they are now stored in the dedicated file called puzzles/my_library.xml.
Simply copy this file to the new Verge3D installation folder and your library will show up.
Improved Outlining
The outlining effect has been improved: a non-zero value for the parameter Edge Glow now creates an additional layer of glowing as it was supposed to work in the original algorithm.
Also, the outlining puzzle is no longer disabled by default. Instead, it shows a warning if outlining is not turned on in Blender.
Faster Ray Casting
We significantly improved the performance of raycasting thanks to applying the bounding volume hierarchy (BVH) algorithm to geometry.
As one of most prominent results of this, we were able to improve the precision of determining of whether the annotations are occluded by geometry (previously the calculation was made on the basis of bounding boxes).
(By the way, the opacity level of occluded annotations can now be tweaked via CSS.)
Other features that will work faster thanks to BVH are:
- object picking (when clicked and when hovered puzzles);
- first-person camera controls (floor detection);
- picking with VR controllers;
- any other things that leverage raycasting via JavaScript API.
Compatibility Across Platforms
We made Verge3D work on older iOS devices such as iPad of the 2nd and 3d generations, iPad mini 1st gen, iPhone 4s, as well as on older Android devices with Mali (Samsung S6 etc) and Qualcomm Snapdragon (Samsung S5 etc) GPUs.
Verge3D now prints a warning to the browser console if the number of textures per shader exceeds the harsh iOS limit of 8.
Also, we now force using WebGL 1.0 on iOS, as WebGL 2.0 on this platform is still in development.
Other Improvements and Bug Fixes
We removed odd Python cache files from the distribution (that was several hundreds of useless files stored in __pycache__ folders) which resulted in a more compact archive file.
We fixed the issue with touch move events (particularly, provided by HTML Puzzles) not working due to a conflict with the default touchscreen controls.
Now scenes without any geometry won’t crash the engine.
We also fixed the crash when screen-space reflection/refraction is enabled for glTF-compliant materials.
We got rid of memory leaks in the generate normal map puzzle that caused losing the WebGL context after several texture updates.
Finally, all post-process effects are now restored upon exiting the AR or VR modes.
In Closing
Hope you like our work! Leave your feedback or suggestions for the future Verge3D updates on the community forums!
YEEEESSS!!! :D