We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.

Blogs

Verge3D 4.11 for Blender Released

We are excited to announce the release of Verge3D 4.11 for Blender! With this version we present a new e-commerce example – an online shop selling batteries. It shows off the use-cases of the simple product, the grouped product, and the variable (configurable) product. Also brought are the bird’s-eye controls, improved reflection/refraction, Blender 5.0 support, sky rendering and exposure settings, skinning/morphing-friendly boolean operations, and last but not least, boosted performance!

Outlining the Future

Before we go into details, we’d like to outline our intentions for the future. We see our tool as a professional enterprise-grade product with a stable and fully-usable feature set. It also should be suitable for creating big and small projects alike. So this release represents an important shift in Verge3D development. Here is what we intend to do to achieve this long-term goal:

  • limit the number of supported versions of modeling tools to focus on product quality
  • remove features inherited from Three.js which do not fit the Verge3D paradigm and thus avoid bloat
  • prioritize improving the existing features over adding new barely useful or buggy stuff
  • ensure that all demos can be opened in all supported versions of the compatible 3D modeling tools
  • implement extensive automated testing of Verge3D releases, demos and assets packs
  • maintain up-to-date documentation highlighting most efficient production techniques

Let us know what you think in the comments. Meanwhile, see what we have done for now.

New E-commerce Demo: Battery Shop

We used to have a simplistic demo with soda cans to show off how the e-commerce puzzles work. From now on you got a full-scale application which use can learn from and reuse in your work.

Verge3D for Blender - E-commerce Demo: Battery Shop - simple product, the grouped product, and the variable (configurable) product

As a reminder, Verge3D’s e-commerce puzzles work in the WordPress environment on top of the free WooCommerce plugin. However the principles behind this app’s procedurally generated content can be used in any applications beyond the WordPress CMS.

This shop adds an interactive 3D rendering to the simple product, the grouped product, and the variable (configurable) product as defined by WooCommerce.

Verge3D for Blender - E-commerce Demo: Battery Shop - grouped product added to cart

Our Battery Shop can render everything between a single item and a big pack with hundreds of items, making it suitable for retail and wholesale alike.

On the side note, you may want to prevent reloading of the 3D scene when products are added to the cart to ensure uninterrupted customer experience. To add products on a fly, we used the free WooCommerce-enchancing plugin called WPC AJAX Add to Cart for WooCommerce which worked well for us.

Blender Integration

This update intentionally breaks the compatibility with the older Blender versions in the range from v.3.4 to v.4.1, so Blender 4.2 LTS is the minimally supported version now. Dropping these 5 outdated versions allowed us to remove a lot of legacy code both from the exporter and the engine – to say nothing of streamlined asset pipeline.

Also, v.4.2 and later are all based on Eevee Next which drastically changed the things when it was first introduced. So the workflow should now be more consistent across Blender versions, while simplifying the installation procedure at the same time. All applications created in the App Manager are now based on the template .blend file saved in Blender 4.2. We also re-saved and re-exported all the demos and startup scene templates using Blender 4.2.

But Blender continues to evolve rapidly, so we made sure that Verge3D 4.11 is compatible with Blender 5.0 which should be out by this time.

Now to the newly supported features! This update introduces the support of a new model for the Sky Texture node, Nishita (to be renamed to Single Scattering in Blender 5.0). This model is considered to be more physically correct even though it requires more processing power.

Verge3D for Blender - sky texture usage - Nishita model

In addition, we supported the Exposure param in the Color Management panel. It allows you to conveniently adjust rendering brightness for the entire scene. It will surely be useful when setting up the Sky Texture in Nishita mode – per suggestion on the forums.

Verge3D for Blender - color management settings

Another shader feature supported is the Magic Texture node which can generate various random patterns.

Verge3D for Blender - magic texture usage
Verge3D for Blender - magic texture example

Finally, the panel for exporting collections obtained icons and now filters by name correctly.

Verge3D for Blender - export collections

Various Fixes Related to Blender

We also ironed out some issues regarding Blender integration:

  • tweaked the Cube startup templates for better consistency with Blender viewport
  • fixed the AgX and Khronos PBR Neutral modes from Color Management > View Transform settings which caused rendering problems in some cases
  • fixed the issue with Depth Write which must not be available for opaque materials, only for transparent ones
  • corrected clamping in the node Map Range – thanks for reporting this on the forums!
  • fixed the engine crash if either of Glass BSDF, Metallic BSDF, or Volume Coefficients nodes are used
  • fixed the crash of animation baking when exporting from Blender 5.0.

App Manager

We implemented the possibility to switch between modeling tools using a menu indicator on the top-right corner of the App Manager, which would be indispensable to Verge3D Ultimate users. It works in all sections of the App Manager, so you can switch between the demos in the Assets Store, for example.

Verge3D for Blender - switch between packages in the App Manager

Next, from now on, all new applications will be created with no cache feature enabled by default. It will also be switched off for any existing apps if you invoke the automatic update. The result is huge memory savings – see the chart below.

Here is some more details. Caching the loaded files is only useful when switching between dynamically loaded scenes or textures back and forth, which is a rare scenario. However, for the end user this implies a massive memory consumption, potentially causing slowdowns or even crashes, especially on Apple’s mobile devices. Luckily, Verge3D offers a more efficient way to cache files, that is by enabling the offline mode for an app.

Usage hints are now printed when running App Manager’s command line server script without parameters.

Verge3D for Blender - running the App Manager in command line mode

We fixed some issues with naming of files and folders. Particularly important was fixing the crash of applications those name had a dot in the middle. This also affected the offline mode, the SCORM e-learning template, and the converter to desktop and mobile apps.

Puzzles

We overhauled the screen-space reflection/refraction feature bringing it to a new level.

Verge3D for Blender - screen-space reflection/refraction puzzle reworked

Check it out:

  • improved rendering quality of refraction
  • parameters and ranges were set to plausible default values making them easier to tweak
  • improved performance and reduced memory footprint
  • the max distance parameter made to work properly
  • more important params moved to the top of the list
  • removed the thickness param as it was hard to tweak and was buggy anyway
  • improved support for multi-material objects
  • underlying shaders ported to WebGL 2.0 offering a more clean shader code
  • updated docs with usage recommendations

The create object puzzle’s recently introduced option plane with html now correctly works when switching between cameras (per discussion on the forums). Also it now works properly with disposal of the application (a procedure invoked for unloading).

Verge3D for Blender - puzzle create plane with html example

In addition, we fixed the issue with deleting this auxiliary plane object.

The puzzle set camera param obtained a new setting, screen space panning, which you can set to false to enable navigation like in Google Earth or in bird’s-eye view video games.

Verge3D for Blender - puzzle set camera param - screen space panning

The workings of such the type of camera controls can be seen in our old Follow Path demo which we updated to enable dragging of the location using the left mouse button, while the right button performs rotation.

The puzzle make object from (which recently got a major update) now supports boolean operations on both morphed and skinned objects. This feature was suggested through the Enterprise support channel by two users independently of each other! Also, this puzzle now correctly works with parented objects.

Other Improvements

We engaged in further optimizations toward speedy shader compilation. Most Verge3D apps will now load faster, especially when the scene uses shadows, clipping planes, reflection plane, bloom post-effect, or if you enable HiDPI Compositing for any of the objects (see comparison chart below).

Verge3D now checks mutual compatibility of the engine runtime and the glTF scene, and warns about possible issues to the browser console. If you happen to see such the message, you are encouraged to do what it suggests.

Verge3D for Blender - version incompatibility warning printed to browser console

The Electron.js framework used to create desktop applications was updated to v37.2.3. We also updated the templates and documentation to make them relevant to this new version. Among new features are improved performance, security, and support for modern Web APIs. Note that Windows 7 is no longer supported, so the minimal OS version now is Window 10.

When extracting the distribution archive under Linux or ChromeOS it no longer prints lots of warnings like “Ignoring unknown extended header keyword LIBARCHIVE.xattr.com.apple.quarantine”.

The scene loading time in the performance profiler is now calculated more accurately.

Feature Deprecation and Cleanup

For this update we performed cleanup of deprecated JavaScript APIs which we warned about a few releases ago. List of removed classes and properties: AmbientLightProbe, MeshPhysicalMaterial, MeshLambertMaterial.specularMap, MeshBasicMaterial.specularMap, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, StereoCamera, DodecahedronGeometry, OctahedronGeometry, TetrahedronGeometry, TorusKnotGeometry, BufferGeometryUtils.computeMikkTSpaceTangents, and BufferGeometry.geometry.morphAttributes.color.

We’re now zeroing in on a new bunch of features inherited from Three.js long ago which we consider obsolete for the Verge3D pipeline. We already removed them from the Developer Reference. If there will be no special request regarding these features from Verge3D users, they might be removed altogether in the future.

Here the classes, methods, and properties that are deprecated with this update: AnimationObjectGroup, AnimationClip.parse(), BooleanKeyframeTrack, ColorKeyframeTrack, StringKeyframeTrack, AudioAnalyser, ArcCurve, CatmullRomCurve3, CubicBezierCurve3, LineCurve3, QuadraticBezierCurve3, InstancedBufferAttribute, InstancedBufferGeometry, CubeTextureLoader, MeshLambertMaterial, Material.alphaMap, Material.combine, Material.displacementBias, Material.displacementMap, Material.displacementScale, Material.lightMap, Material.lightMapIntensity, Material.normalMapType (drop v3d.ObjectSpaceNormalMap), Material.reflectivity, Material.refractionRatio, Cylindrical, Vector3.setFromCylindrical, InstancedMesh, LOD, CSS3DSprite, CompressedArrayTexture, Texture.mapping, CubeRefractionMapping, EquirectangularReflectionMapping, EquirectangularRefractionMapping, ReinhardToneMapping, CineonToneMapping, ACESFilmicToneMapping, Texture.matrixAutoUpdate, Texture.matrix, Texture.offset, Texture.repeat, Texture.rotation, Texture.center, and Texture.updateMatrix().

We also performed a massive cleanup of deprecated shaders inherited from older version of the modeling tools that are no longer supported.

WordPress Plugin

WooCommerce-related puzzle product attribute now no longer returns undefined value if such the attribute does not exist for the product. Instead it returns an empty string.

We fixed the issue with the WordPress plugin failing to activate should the Editor user role be missing in one’s WordPress system for any reason. This issue was reported through the Enterprise support channel.

We fixed the problem with uploading folders containing hidden files (relevant to macOS and Linux).

We fixed the bug with product gallery images, when multiple 3D canvases were created one under another for each gallery image.

More Handled Bugs

We got rid of memory leaks related to unloading and repeated loading of scenes. This issue was reported through the Enterprise support channel.

We fixed the crash in the App Manager which could happen if the v3d.js engine module was corrupted. From now on, it silently skips such apps and prints a warning in the log.

We fixed missing dependencies for building the Puzzles Editor in the Development Kit.

Documentation

We believe that this release hits record on the amount of various changes and improvements in our documentation.

First of all, we added a switcher to the User Manual to filter Blender, 3ds Max or Maya-related sections, so that you can more easily find information you need when working with a particular 3D package.

Most importantly, we invested huge efforts to overhaul the Developer Reference. It now focuses on features that are actually supported and – in our opinion – useful to Verge3D users. We reworked the code examples to make them work in the standard Verge3D templates, added more explanations for them, provided links to corresponding puzzles, and improved their readability thanks to an upgraded layout and a new monospaced font.

The API Reference also saw more best practices and recommendations added. Moreover, we documented cases when Verge3D behaves differently from Three.js – e.g. object visibility in Verge3D does not affect children as in Three.js – and so on.

Finally, we improved the chapter on using the Developer Kit. Particularly we explained how you can disable Verge3D version line printed in the browser console. We also moved the Verge3D Life Cycle chapter from the Developer Reference to the User Manual and updated it too.

Update Now!

Get the new version of Verge3D from the downloads page! Let us know how it works for you, or suggest new features for implementation on the forums. We’d be happy to hear your feedback!

By Yuri Kovelenov

Chief 3D Verger

Leave a Reply

Related Posts