Here is a new version of Verge3D for Maya! For this release, we implemented node-based materials (!), upgraded real-time shadows, added and improved some puzzles such as for muting/unmuting videos and selecting the active camera, extended the functionality of the performance tools, enabled auto-merging and backuping HTML/CSS/JS files when updating apps, further expanded the documentation, and made many other improvements the full list if of which you can find below.
We initiated the implementation of node-based materials that can work alongside glTF-compliant shaders introduced previously. The goal is to allow a designer create custom materials of any complexity, similarly to the Blender and Max versions.
For this release we supported almost 2 dozens of nodes, namely aiStandardSurface, StandardSurface, file, place2dTexture, shadingEngine, bump2d, aiFlat, Ramp, Sampler Info, Surface Shader, Lambert, aiMixShader, aiFacingRatio, aiNormalMap, Layered Texture, Blend Colors, Blinn, Phong, and Phong E.
As a result, many techniques used in the stock Maya examples (such as one on the screenshot below) can now be picked up by Verge3D.
We leveraged some of the above-listed nodes to create a new demo which we added to Verge3D examples – Swiss Army Knife. We plan to make a tutorial series based on this app soon.
Other Maya-specific Improvements
There some other changes related to Maya materials. Particularly, normal maps now correctly work with glTF-compliant materials.
Also, textures provided in arbitrate format (such as TGA, TIFF, EPS, PSD etc) are now automatically converted upon export to web-friendly PNG images. This should spare you having to convert them manually.
Various types of shadows are offered in Maya settings. Selecting between these types allows you to trade off between quality and performance.
In total 6 modes are available. Some of which were implemented earlier and some are new:
- Basic: unfiltered pixelated shadows (fastest).
- Bilinear: slightly smoothed pixels.
- PCF: stands for Percentage Closer Filtering. Uses multiple shadow map lookups for smoothing.
- PCF (Bilinear): additionally uses bilinear interpolation for each lookup.
- PCF (Poisson Disk): this was made the default setting because it corresponds the most to what you see in the 3D editor viewport. It uses pseudo random Poisson disk lookups to eliminate shadow pixelation.
- ESM: stands for Exponential Shadow Maps. Shadows are smoothest but light leaks are possible. Use ESM Bias setting on lamps to remove light leaks artefacts.
PCF (Poisson Disk) and ESM techniques offer best quality at the expense of mediocre performance.
In addition, we improved the quality shadows by reducing artifacts as a result of better shadow volume calculations. Particularly, most shadow artifacts in ESM mode were removed.
Finally, the documentation on shadows has been significantly expanded and updated. This chapter now includes Troubleshooting information to help you get rid of shadow artifacts such as on the image below. See it here.
The mute and unmute puzzles are available for sound and video. Particularly, you can use these puzzles to auto-play videos without direct user action (muted videos can be auto-played).
Zero is now used in the number puzzle by default.
The disable rendering / anti-alias puzzle no longer causes annotations to jitter. Also this puzzle now works faster, and the anti-alias checkbox is enabled by default.
The when moved puzzle is now more responsive thanks to under-the-hood overhauling and optimizations. The period parameter was removed from this puzzle, and the delta parameter was replaced by velocity (measured in units per second).
The new active camera puzzle will help in cases when you switch between cameras.
The performance profiling puzzle now displays more information. Particularly, the dimensions of textures and render targets are displayed in sorted order to help you identify the largest textures and focus on their optimization. Also the information about lighting and shadows is shown, as well as the information about the pixel ratio, and all post-processing passes used in the scene.
It is now possible to print the performance profile without any puzzle by quickly pressing key P 3 times (that is P P P).
Unicode is now supported by the installer. This particularly allows you to install Verge3D in a folder named with non-Latin characters.
The default name for the installation folder changed from simply verge3d to verge3d_maya. So you no longer need to type a different name when you install different versions on the same computer. Be sure to update your scripts etc for the new path.
Updating and Backups
The App Manager will now try to automatically merge your changes made in HTML/CSS/JS files if there are any changes in the application templates. To do so, it uses an algorithm found in git and other version control systems. If merging is not possible, the algorithm falls back to the old behavior, simply overriding the application files.
This merging/overriding mechanism is now enabled by default, yet can be turned off in the update dialog window. All HTML/CSS/JS files of stock Verge3D demos have been updated using this feature.
To prevent possible loss of data in the case you changed the default HTML/CSS/JS files but auto-merging has failed, backups will be made during updating by copying files to your_app/v3d_app_data/update_backup folder.
Also the Puzzles editor’s backups were moved in this folder, i.e.: your_app/v3d_app_data/puzzles_backup.
Warning: the merging feature will start working from the second app update. For the first time it will work in the “overwrite” mode (backups will still be made).
The AR demo Augmented Reality now works properly in Mozilla WebXR browser on iOS.
The ECMAScript6 version of the Verge3D runtime (v3d.module.js, available only to Enterprise users) now works properly with all Verge3D scenes.
Annotations (if any) are no longer displayed by the Puzzles editor after the viewport window is closed.
Shader compilation callbacks can now be added to the
App.compileCallbacks array (similarly to
App.renderCallbacks). It is recommended to enable post-processing or add fog inside these functions (one callback per loaded scene). See the usage example here.
We fixed the crash “too many attributes” when morph targets are combined with skinning in the same object.
New chapter Spotting Performance Bottlenecks is available in the User Manual. Also the following chapters were updated and expanded: System (in Puzzles Reference), Useful Links, Workflow, FAQ and Features.
Performance considerations subsection was added to the Materials chapter.
We added a “Contents” section to each chapter of the User Manual. There were many purely styling efforts in the User Manual as well.