A new version of Verge3D, an artist-friendly toolkit for creating 3D web applications, is out! With this release we delivered an integration module with WooCommerce, improved SSAO and outlining effects, and added a supplementary shadow bias setting. We also created several new puzzles and add some features to the visual scripting editor, as well as implemented the precise occlusion for annotations and made the ray casting algorithm work much faster.
WooCommerce Stores
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.
New 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.
3ds Max-Specific Features
A supplementary shadow setting has been added – Shadow Bias – located on the “Verge3D Light Params” panel. Use it alongside 3ds Max’ Bias setting to fine tune the shadow quality.
The settings “Source Axis” and “aligned to Upnode Axis” are now supported for the Look At constraint.
The Spinner demo is available in the examples (the one which was used for the WooCommerce tutorial).
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.
Better 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 3ds Max.
Advanced 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.
Cross-Platform Compatibility
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 Features and 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!