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.10 for Blender Released

We are excited to announce the release of Verge3D 4.10 for Blender! This new version brings a new Factory Tour demo featuring street view navigation and 360° panoramas. Also included are a GUI installer for macOS users, a new puzzle for assigning animation to a different object, precise referencing of objects and animations in dynamic scenes, the possibility of using shape keys with baked modifiers, and support for new nodes and lighting settings of Blender 4.5.

During the last 4 months we worked hard on ironing out various matters to make Verge3D even more accessible and robust platform for creating web 3D interactives. Enjoy!

Factory Tour Demo

For this update, we created a new demo that shows off an interactive 3D tour equipped with 360° panoramas. If you have ready-to-go panoramic photos or high-quality renders, you can integrate them into a real-time 3D scene for immersive experience. In our work we were inspired by this amazing Verge3D-powered virtual tour courtesy of the European Space Agency. Now you have a starter kit for creating interactives like that!

Verge3D for Blender -  Factory Tour Demo

Key features:

  • interactive bird’s-eye view of factory compartments
  • spot navigation like in map street view
  • real-time 3D and 360° views in one place
  • annotated points of interest

Feel free to download the project files from the Asset Store once you install Verge3D 4.10.

macOS Installer

Mac users no longer need to mess with the .xz archive which was intended for both macOS and Linux environments. From now on, you can enjoy the familiar approach to installing and updating Verge3D via the standard .pkg installer.

Verge3D for Blender - macOS Installer

Our brand new macOS installer will install Verge3D into the Applications folder (inside the user home folder), with no admin privileges required. Then it will configure the Blender extension fully automatically. That’s it – just open Blender and start designing!

Moreover, you can now use a native launcher to run Verge3D App Manager in the standalone mode (that is, without running Blender first). You can find it in the macOS Launchpad. You can also add this launcher to the macOS Dock for quicker access.

Verge3D for Blender - App Manager running on macOS

Another change is that under macOS, the App Manager now uses Python bundled with the Verge3D distribution instead of Blender’s Python scripting engine. Our own Python engine was built specifically for use with Verge3D, and should work faster and more robustly.

Finally, when converting a Verge3D web interactive to a desktop macOS app using Electron.js, the resulting app will get a nice icon which conforms to Apple’s design recommendations.

Precise Referencing in Dynamic Scenes

In Verge3D 4.9, we introduced a series of puzzle-based features for accessing dynamically loaded or cloned materials and textures that share a same name. With this update, we focused on objects and animations, providing you with means to control every individual model.

This was achieved by adding two new advanced options to the puzzle get objects fromenable name filter and return unique object ids.

Verge3D for Blender - puzzle get objects from - settings enable name filter and return unique object ids

The first option is for filtering off specific objects by their names. You can use whole names of just parts of names (starting withending with, etc). For example, if you’ve got 100 chair variants with their names all starting with “Chair”, you can select them in bulk by name, without the need to add them first into a group in the 3D tool, or put them into a list puzzle.

The second option is very important in the case when having just the name is not sufficient – this is when objects are appended dynamically from another glTF file and happen to have same names. Another use-case is when you copy a parent object, which won’t stop all the children from keeping their original names.

Consider the following example: we want to reuse the same Cube from the same glTF file. But there is a problem – we cannot access the object from the second scene at all, because this is the same file and the object keeps its name.

Verge3D for Blender - puzzles setup for appending scenes and assigning materials - not working

The latter puzzle option solves this by offering a unique reference to an object by its internal ID. You can then use this ID (as it was with materials, it looks something like 5c464bf0-043a-40ee-b864-5c026436d7de) to pass it into other object puzzles directly, or put it into selectors, lists, or text puzzles for further use.

Verge3D for Blender - puzzles setup for appending scenes and assigning materials now working

As you can see from the above screenshot, the get objects from puzzle employs the new option called first. It returns just one object that managed to satisfy the search criteria instead of a list.

Verge3D for Blender - puzzle get objects from - new option first

Unique IDs for Animations and Picking

The puzzle get animations of received a similar upgrade. Its new option return unique animation ids allows you to refer to an individual animated object even if it shares a same name. Similarly to objects, you can plug the obtained unique ID into other animation puzzles.

Verge3D for Blender - puzzle get animations - new option return unique animation ids

And now the picking time! The puzzle when clicked got a matching new option – unique picked object id. When enabled, it will pass a unique ID into the supplemental puzzle picked object instead of the object’s name. Once again, this allows you to assign click listeners to models that you appended dynamically or created procedurally.

Verge3D for Blender - puzzle get animations - new option - return unique animation ids

New Puzzles

The newly available puzzle assign animation is kinda revolutionary even if it does just one simple thing – re-use an animation on a different object. This object can be a clone, or something appended with a new scene, thus opening the road to more flexible and efficient apps. It supports whole-object, shape key, material, and light intensity animation. You cannot assign skinning animation as it would require special preparation of animated objects – yet it’s still possible with JavaScript API.

Verge3D for Blender -  puzzle assign animation

As you can see from the above screenshot, this puzzle returns a new animation assigned to the target object. Once you get it, you can play this animation as usual.

Another new puzzle we called total materials. It counts and returns the overall number of materials assigned to an object. It can be used to iterate over an object’s materials to change some property in all of them in bulk. You can also use it to check if some object is a mesh.

Verge3D for Blender -  puzzle total materials

Constructive Solid Geometry

We upgraded the make object from puzzle which is used to procedurally create new meshes through boolean operations. We also added a new demo to the Asset Store called Constructive Geometry to provide some usage examples. It shows how you can create a complex model out of the default cube.

Verge3D for Blender -  Constructive Geometry demo

Under the hood, we replaced the OctreeCSG library by three-bvh-csg – this new library is smaller, 2-3x faster, and better integrated with Verge3D features.

Another important change is that the make object from puzzle obtained a new convenience option – clean – that automatically deletes original objects thus greatly reducing boilerplate.

Verge3D for Blender -  puzzle make object from

There is more – it is now possible to use this puzzle with multi-material objects. It also preserves more properties from source objects such as shadow receiving and casting.

HTML Puzzles

We added options cols and rows to the get / set prop puzzle, thus enabling to set the number of rows and column in text area HTML elements. Thanks for giving us this idea on the forums.

Verge3D for Blender -  puzzle get / set prop with textarea options

We added the contextmenu event to HTML on event puzzle. It allows you to override or remove the standard right-click menu (so it’s desktops only). It is possible to show the context menu over the entire screen or only over a specific object.

Verge3D for Blender -  puzzle HTML event with contextmenu option

We also added a new puzzle group to the library (named “Context Menu”) so that you can add a custom right-click menu to your app quickly.

We added a new property – pointerId – to the puzzle get event property. It is required for processing multi-touch event user interfaces.

Verge3D for Blender -  HTML puzzle get event property with pointerId option

The puzzles when clickedwhen hovered, and when dragged now support using get event property puzzle inside them. For example, it can be used to receive the mouse coordinates inside these puzzles.

Verge3D for Blender -  usage of puzzle get event property inside when clicked puzzle

We made it possible to attach the puzzle init fullscreen to other puzzles as you can see on the screenshot below. By the way, we added comment puzzles to all entries in the Puzzles Library to serve as hints on how to use them. It should help with adapting them for your app without the need to check with the docs.

Verge3D for Blender -  puzzle group for initializing fullscreen button

Blender Integration

With this update we introduce support for Blender 4.5 which should be out by now.

We implemented two shader nodes introduced in Blender 4.5 – Vector Math → Power and Vector Math → Sign.

Verge3D for Blender -  shader nodes Vector Math / Power and Vector Math / Sign

We also supported new params for lights that appeared in Blender 4.5 – TemperatureExposure (for all lights), and Normalize (for Area lights only).

Verge3D for Blender - light settings Temperature, Exposure and Normalize

Here is one important usability improvement for Blender users – the Bake Modifiers checkbox can now be used with morphed objects! In other words, the shape keys are no longer baked and therefore become available for manipulation in Puzzles (this issue is thoroughly described in this video by Xeon).

Verge3D for Blender -  bake modifiers checkbox

We reconsidered the highly advanced algorithm for baking animations keys that was introduced back in Verge3D 4.2. Having this feature didn’t really pay off. It prolonged export a lot and also required extra care from the user, e.g. when rotating objects (see this video by Xeon). So we decided to drop it until we figure out something better.

Nodes Subsurface Scattering and Volume Scatter, for which we maintain a simplistic implementation, no longer crash. Also the node Math’s param Floored Modulo is now supported.

When using the Fit to Camera Edge feature, in case the parented object’s Parent Inverse is not cleared, it will show a descriptive warning so that you can clear it before exporting.

Verge3D for Blender - warning to clear Parent Inverse

Also parenting with no inverse now produces correct results and takes less processing during the export of parented objects.

Verge3D for Blender - parenting without inverse

We fixed the issue with vertex colors in meshes with uninitialized material slots. Thanks for bringing this up on the forums.

We fixed the engine crash when using the node Bump as of Blender 4.4 or later. Thanks for reporting this issue on the forums.

We fixed the crash when an unconnected Principled BSDF node is present in a glTF-compatible material. This issue was reported via the Enterprise support channel.

Finally, we adapted the Ambient Occlusion demo for the latest Blender versions.

App Manager

Title, description and social media title and description in the App Manager settings now properly handle special characters such as quotation marks.

The browser is told to not spell-check certain text fields that do not require spell checking, like application name and folder, and others. The App Manager also got other various UI tweaks, mostly relevant to the Safari browser under macOS.

Optimization

With this release, we initiated the sun-setting of good old WebGL 1.0. We are planning to gradually upgrade Verge3D’s graphics features to WebGL 2.0.

This should improve the performance of Verge3D apps on contemporary devices the dominant majority of which supports WebGL 2.0. For this update, we migrated the post-effects, HDR rendering, and advanced anti-aliasing such as FXAA. We also managed to improve the visual quality of some of these features (especially FXAA), and achieved a somewhat faster application loading.

On the bandwidth side, we further optimized the shader code, cleaned up unused and deprecated features, and dropped unused CSS styles. The private JS methods and properties prefixed with the underscore are now obfuscated. All this reduced the file size of the engine runtime by a few dozen kb.

More on Puzzles

The puzzle create object now assigns the shadow side property correctly, so shadows now work properly with procedurally created objects. Moreover, objects added by this puzzle now cast and receive shadows by default, which is consistent with the behavior of the modeling tools. At the same time, the puzzle set shadow param now works multi-material objects too.

The material selector puzzle no longer shows auxiliary (“stencil”) materials created by clipping planes.

We updated the puzzle check performance to include the latest hardware database, which particularly lists the latest Nvidia hardware. Thanks for bringing this up on the forums.

If some puzzle should happen to print an error to the browser console, the error message will include the puzzle’s name, so it’s now easy to pin down the faulty puzzle.

In a situation when a Clipping Plane is used together with the puzzle make from, the Clipping Plane‘s option Negated now works properly.

The puzzle play animation set to auto mode now respects the Loop Mode and Repeat Count params assigned in the modeling tools. Thanks for bringing this up on the forums.

We adapted all the puzzles to a situation when an application is embedded in a page that is served from a different web domain (thus fixing the dreaded cross-origin problem). Particularly e-commerce and e-learning puzzles now work in such the case. Thanks for bringing this up on the forums.

Finally, we tweaked and updated the tool-tips for various puzzles, refreshed the puzzles’ help pages in the User Manual, and added more usage examples for old and new puzzles.

Licensing and Version Compatibility

As you know, the Verge3D license is perpetual, with software updates available within 12 months after the date of purchase. In the case the license key was not renewed, one must not install a later Verge3D version not covered by the outdated key. Besides that this does not play well with the EULA, there can also arise various nasty technical issues. This is because the update process intentionally won’t touch the old Verge3D runtime so that to keep it activated with the old license key.

Verge3D for Blender - App Manager warning about expired license

To notify the user about such the problem, we now print a warning on the App manager splash screen just after installing a non-compatible Verge3D update. If you happen to see this message, please either do renew, or just downgrade to an older version in the coverage range of your license key.

CSS 3D Renderer

Embedding a whole website, YouTube videos or custom web UI into the 3D scene can now be done in a moment. We made it possible by integrating the CSS 3D transform functionality into the engine core. The embedded web content remains fully interactive, so you can post on the community forums, watch videos and even run another Verge3D scene inside!

Verge3D for Blender - CSS 3D Renderer demo

How you do this? Just drop a create object puzzle, select plane with html, and change the web link.

Verge3D for Blender - puzzle create object puzzle - option select plane with html

We updated our simplistic Htmlmixer demo which no longer needs any JavaScript to run, and made it available for all three supported modeling tools. We’ll probably make a full-fledged demo out of this.

Other Improvements

Multi-material objects now assign readable names to their automatically generated submeshes. This makes such entities more operable from the programmer’s point of view. In addition, this creates a clearer scene graph when exporting from Verge3D to .gltf file.

We added the noscript tag to app templates and to all our demos, so the user will see a descriptive message rather than blank page if JavaScript is not available. This also helps to better search engine indexing of your apps.

We tweaked the camera distance and limits in the Standard app templates.

Verge3D dropped interleaved vertex buffers inherited from Three.js as this feature is no longer relevant to modern graphics hardware.

We reworked JS API for handling multi-material objects.

We added an API method WebGLRenderer.readRenderTargetPixelsAsync() which particularly helps to speed up the work of the third-party Gaussian Splatting plugin. Thanks for suggesting this on the forums.

The Windows installer now provides more descriptions and hints to make the installation process simpler for newcomers.

We fixed scrolling of the navigation panel in the User Manual and Developer Reference so it now works smoothly on Safari.

As usual, we reviewed various sections of the docs, where we supplied updated screenshots and added some new examples.

Bugs

We fixed the bug with incorrectly exported muted morph targets. Thanks for reporting this on the forums.

When deleting clipping planes, their cross-section materials will now be deleted too. This issue sometimes crippled the original object.

Another potential security issue in the WordPress plugin was discovered and dealt with, based on the feedback from third-party audit.

We fixed the rendering issue in the mobile Firefox browser making the environment lighting darker than should be.

We fixed the issue with incorrect links/snippets copied to clipboard when uploading multiple items to Verge3D Network. Thanks for reporting this issue on the forums.

We fixed the blackout issue with the replace texture puzzle when a texture is swapped by a video and then restored back. Thanks for reporting this on the forums.

Finally, we fixed puzzles crashing when incorrect inputs are used with them. For example, the assign material puzzle with any non-mesh object crashed causing the entire Puzzle scenario to fail. Same happened with the set transform puzzle that chocked on non-numeric inputs – no more!

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