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.0 for Maya and Ultimate

We are proud to announce the release of Verge3D 4.0, the next major version of the artist-friendly toolkit for creating 3D web interactives! This is a huge update, with tons of new features and complete overhaul of the tools, the file format, and the engine core. We hope that Verge3D has become even more professional, convenient and robust framework as a result of our hard work during last 6 months. Check the new features out:

Installation, Applications and Demos

The most important visible change with Verge3D 4.0 is that we separated user applications and settings, as well as stock demos, from the software installation. When starting the App Manager for the first time, it will suggest selecting a working folder for your applications (on Windows, this is usually inside Documents). This is where all your applications and the custom Puzzles library will now be stored.

Verge3D - selecting user folder in splash screen

You can also choose between “Light” or “Dark” themes in the same dialog. Both preferences can be changed later in the App Manager settings.

Having a separate folder for applications will make updating for new Verge3D versions easier. Also, you can now use different Verge3D flavors (Blender, 3ds Max, or Maya) with the same applications folder, rather than having to maintain a separate folder for each package.

Next, after installing Verge3D 4.0, you won’t see any stock demos listed in the App Manager (thus the file size of the distribution is only about 100 Mb now). The demos can now be freely downloaded upon request from the store section of the App Manager.

Verge3D Asset Store (Maya)

You can filter content by demos, tutorials, and libraries using small buttons on the right. We plan to add to this store various simple examples for more convenient learning how this or that feature works.

Finally, the software itself is installed in a system directory (usually Program Files on Windows). This normally requires admin privileges – if you happen not to have them, simply select a folder that you are permitted to use. All third-party Verge3D plugins must also be copied to this directory.

The personal settings for the App Manager are saved in another system folder (AppData/Roaming/Soft8Soft on Windows). This allows the system administrator to install Verge3D once for all users who can have their own settings each.

Texture Compression

Here goes one of the most important features of this release. Texture compression enables images to use 4x-6x less video memory, and speeds up rendering thanks to more efficient memory access. This feature is especially crucial to hardware-restricted Apple devices, since insufficient memory is the main reason for big scenes crushing on iOS.

Texture compression is performed when you export a scene, if you enable the corresponding option.

Verge3D for Maya - enable texture compression

If you create a new app with Verge3D 4.0, you should leave checked the option Texture Decompressor that provides a JavaScript library for this operation.

Verge3D App Manager - create new app with texture compression

Verge3D employs two compression algorithms which you can switch between:

🔷 UASTC is a modern method which offers best quality. It is good for everything including normal maps, ORM textures, etc.
🔷 ETC1S offers best compression and generates smallest files. However, it may cripple textures so you might use it only for non-contrast images (such as grass, wood, bricks, etc).

You can tweak efficiency-vs-quality by choosing the compression algorithm for each individual texture.

Verge3D for Maya - enable texture compression for individual images

However, you don’t really need to choose between them and can safely leave the default Auto option, that corresponds to simply using UASTC in the current implementation (this behavior may change in the future).

Besides genuine texture compression, all HDR images are now compressed with LZMA (i.e. same method used for glTF files). This makes the HDR files 4x-6x times smaller, although they still occupy the same amount of video memory. This feature is turned off when you set the texture compression setting to Disabled.

We ensured that texture compression could be used with the puzzle replace texture. Also, the print performance info puzzle (as well as P-P-P hot keys) now outputs info about texture compression. Namely, it prints what exactly compression format is used internally by Verge3D on the target hardware (intended for advanced users).

Verge3D - print performance info - texture compression

From our side, we enabled texture compression for all stock demos. We also optimized PNG textures by removing ICC profiles from image files. This is quite relevant because the ICC profile enlarges a file, and more importantly, prevents using compression.

Verge3D for Maya Demos

We added a new app called Light Probe (based on the similarly-named tutorial) to demonstrate both planar and cubemap reflection probes. You can download it from the Verge3D Asset Store.

light probe demo (Maya)

We also added a new app called Load Unload to demonstrate the dynamic loading feature. You can download it from the Verge3D Asset Store.

Load Unload demo (Maya)

We added the demo called 🐇 Transparency to Verge3D Asset Store to show off all types of transparency supported by the engine.

demo Transparency (Maya)

Finally, the small demo called 🖼️ Canvas Texture creates pictures on the fly using the HTML Canvas API.

demo Canvas Texture (Maya)

Updating and Settings

To simplify updating applications for new Verge3D versions, all available JavaScript modules are now copied into the application folder by default. Particularly, if you enable texture compression introduced in v.4.0, it will work even if the app was originally created with older Verge3D versions. If you are sure you won’t need some of the modules, you can skip them in the update dialog.

Verge3D App Manager - updating apps

We also redesigned the UI for ⚙️ App Manager settings, which are now reside in tabs.

Verge3D App Manager - settings UI

Sync with Three.js

We have synced with version r137 of Three.js, the underlying WebGL library used by Verge3D. Most important features for Verge3D users include:

  • Unlimited morph targets (for browsers supporting WebGL 2.0). Before this update, only max 6 morph targets were available in Verge3D.
  • Improved rendering quality thanks to advanced texture filtering provided by hardware-accelerated sRGB textures (part of WebGL 2.0 specification).
  • Upgraded glTF loader that now supports more glTF extensions. This will be helpful if you are going to use files exported by glTF exporters other than Verge3D’s. The full list of supported extensions includes: KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_pbrSpecularGlossiness, KHR_materials_sheen, KHR_materials_specular, KHR_materials_transmission, KHR_materials_unlit, KHR_materials_volume, KHR_texture_basisu, KHR_texture_transform, KHR_mesh_quantization, EXT_texture_webp, EXT_meshopt_compression.

In addition, the export to usdz puzzle now uses the USDZExporter class from the latest Three.js library. This brought better support for transparent materials, among other features.

Sync with Google Blockly

We upgraded the 🧩 Puzzles editor by syncing with the latest version of Google Blockly framework. It now works much faster with big scenarios, and is more stable.

Also, all outdated puzzles will now show in your scenarios as 🟥 red placeholders.

Verge3D Puzzles - red placeholders for outdated puzzles

This will happen with old versions of such puzzles as play animationreplace scenetexture from textexternal callload soundphysics body paramsphysics apply vector, and ssao. Be sure to get rid of such puzzles (that have a ⚠️ warning sign on them) before upgrading to Verge3D 4.0.

Verge3D Puzzles - warning for outdated puzzles

Sync with Electron.js

We have updated Verge3D’s web-to-desktop converter to use the latest version 19.0.4 of Electron.js. It improved stability and added some useful features.

glTF Format

We refactored the glTF format to make the files more conformant with the glTF specification. Particularly, the S8S extensions were overhauled. Also glTF-compatible materials no longer contain S8S extensions. We recommend reexporting all your scenes after updating for Verge3D 4.0.

Browser Compatibility

We have removed legacy modules from the engine, namely Internet Explorer compatibility and legacy VR. Also the browsers must support WebAssembly as it is required for physics and some other features to work. This change will affect only 1-2% end users equipped with IE11 or mobile Safari before version 11 (iOS 11 was released in 2017). Still, if this does not look good to your audience, then you might prefer to stick to Verge3D 3.9.1 until you feel that you can ignore these older browsers.

🧩 Puzzles

We added puzzles get procedure and call procedure that you can use to save a procedure to a variable and call it later in some other place. This allows you to implement callbacks and to structure your puzzles better.

Verge3D Puzzles - get procedure and call procedure 

The camera, which by default is restricted in vertical direction, can now rotate in the full 360° mode. You can enable this behavior by using a new option called orbit allow turnover which we added to the puzzle set camera param. Thanks for suggesting this feature.

Verge3D Puzzles - option orbit allow turnover for the puzzle set camera param

We added a new primitive, plane with texture, to the puzzle create object.

Verge3D Puzzles - option plane with texture for the puzzle create object

We synced with upstream the hardware database used by the puzzle check performance.

The advanced play animation puzzle obtained default fields: fromto, and speed. This way you no longer need to add Number puzzles every time you want to play an animation range.

Verge3D Puzzles - puzzle play animation

The puzzle check AR mode now has 3 slots to conveniently use Apple’s USDZ viewer without the need of extra logic in your Puzzles. See the demo Augmented Reality for usage example.

Verge3D Puzzles - puzzle check AR mode

We added the option @media to the puzzle create CSS rule, to match the puzzle set style for CSS rule where such the option is present.

Verge3D Puzzles - puzzle create CSS rule

We added the targetTouches events to the puzzle get event property. To explain the difference, touches means a list of information for every finger currently touching the screen. On the contrary, targetTouches are filtered to only those touches that started out within the same HTML element. This feature allowed us to implement mobile multi-touch controls for the Snowballs VR demo, so that the left and right hands could be distinguished in the Puzzles scenario.

Verge3D Puzzles - puzzle get event property

We implemented a new puzzle called set animation speed, which you can use not only to adjust the speed per se, but also to reverse the playback, even before the animation finishes playing to the end. Thanks for suggesting it on the forums back in 2019, and sorry for taking this so long.

Verge3D Puzzles - puzzle set animation

The good old puzzle show now works with multi-material objects when they are originally hidden.

Maya-Specific Features

Line render is now available for splines which can be used to implement various graphics effects, wireframes, physical ropes, etc. You can adjust the color and width for lines.

Line render in Maya

We fixed export crash when Arnold’s aiImage is present.

The alpha output of 3-channel JPEG textures now properly works.

We supported vertex colors via the aiUserDataColor node.

Maya - vertex colors via aiUserDataColor node

You can specify multiple custom attributes for this node:

Maya - vertex colors via aiUserDataColor node - custom attributes

Maya 2023 released this March now gained Verge3D support.

We fixed the issue with the camera option Fit Resolution Gate not working properly when it is set to Fill. This issue was reported through the Enterprise support channel.

Maya - Fit Resolution Gate for cameras

We fixed the problem with exporting lines for scenes using non-default units. Thanks for reporting this on the forums.

We fixed potential problems with installation of Verge3D for Maya on Windows.

Other Improvements

We optimized loading of images by assigning them to textures asynchronously.

The LZMA unpacker now works faster and occupies less memory thanks to using WebAssembly.

Verge3D Network directory was simplified. It now displays one level less in the list of uploaded files (i.e. skips the “applications“ folder).

Verge3D App Manager - Network directory

All so called “player-based” demos that were causing much confusion among users were converted to “normal” apps, that is, are supplied with a mandatory .html file to run them.

Clipping planes can now properly cut objects with skeletal animation. This feature was suggested through the enterprise support channel.

The users of Verge3D DevKit (included in Enterprise and Ultimate packages) can now automate the updating of the engine and applications by running the Python script utils/keymanager.py.

A descriptive message is now shown in the App Manager if the local server is down, instead of ‘This site can’t be reached / localhost refused to connect’.

Verge3D App Manager - connection error

We implemented progressive loading of Asset Store entries which helps if Internet is slow. We also provided better titles and descriptions for the demos.

You can now navigate to the URL localhost:8668/reset to clean up the settings of the App Manager. Intended for advanced users, this is a handy way to begin from scratch.

Fixed Issues

🐞 We fixed the bug with the combination of puzzles not and in list check occurrence.

Verge3D Puzzles - not and find in list

🐞 We fixed banding artifacts with dynamic ambient occlusion.

🐞 We fixed the bug with Puzzles editor when new tabs had no access to all procedures used in a scenario. We also fixed some issues when a tab is deleted. Also tabs are now created faster.

🐞 We fixed the bug with Puzzles editor’s context menu option Jump to Procedure Puzzle that didn’t work properly.

Verge3D Puzzles - option Jump to Procedure

🐞 We fixed the bug with disintegrating puzzles when a group of puzzles is being dragged (e.g. out of the library).

🐞 We fixed crashes occurred upon exiting an AR session.

🐞 Physics data are now properly cleaned up when the puzzle remove physics body is used.

🐞 We fixed the bug when dynamic ambient occlusion (GTAO) is used together with reflections. Thanks for reporting this.

🐞 The App Manager now properly works without Internet connection, which is needed for the Asset Store and Network Directory.

🐞 We fixed the bug with ambient occlusion not working in the AR/VR modes. Thanks for reporting this on the forums.

🐞 We implemented a workaround for a WebGL bug introduced in iOS 15.4. Thanks for reporting this.

🐞 Verge3D apps now work properly in WeChat browser on iOS 15.4. This issue was reported through the Enterprise support channel.

🐞 We fixed crashes in the Puzzles editor sometimes happened when puzzles are deleted. Thanks for reporting this.

🐞 We fixed rare export crashes related to case-sensitivity of file names (Windows-only).

🐞 We fixed the issue with normal-mapping of planar light probes, occurred when they are scaled.

🐞 We fixed z-fighting occurred on some non-Windows systems. This was achieved thanks to employing the 24-bit depth buffer which is part of WebGL 2.0.

🐞 We fixed the Windows-specific issue with line endings in the multi-line text puzzle.

🐞 We fixed the rare Puzzles bug caused by objects that: A) have morphing, B) have a clipping plane, and C) are multi-material, at the same time. This issue was reported through the Enterprise support channel.

🐞 We fixed the issue with incorrect lighting on originally empty scenes, that is when models are added in run time later.

🐞 We fixed a bug in Verge3D WordPress plugin related to incorrectly determining of product IDs.

Documentation

📝 We made links to the Verge3D Asset Store to serve as examples. We also adjusted styles and improved overall readability of the User Manual.

📝 We created or significantly reworked the following sections: Texture CompressionAR/VR DevelopmentDeveloper Kit, and Personalizing Verge3D Applications. We also filled various gaps elsewhere.

📝 We synchronized the Developer Reference with the latest Three.js API docs.

Update for Verge3D 4.0 now!

Read the Verge3D 4.0 migration guide to learn how to upgrade correctly. The users of Verge3D Ultimate can download this update from their dashboard. Tell us what you think about this release, or provide further suggestions on the forums!

By Yuri Kovelenov

CEO at Soft8Soft

Leave a Reply

Related Posts