Here is a new release of Verge3D for Maya! Version 3.4 brings the possibility to create interesting 3D scene transitions out of page scrolling, multi-line text and script puzzles, improved support for OSL shaders, low-latency audio, fog and ray cast without coding, support for AR modes, and many other features and adjustments the full list of which you can find below.
Now you can track the scroll input from the user, which makes it possible to implement various transitions in the 3D scene according to scroll bar position. This very interesting effect can be used for creating fancy websites, landing pages or product presentations. Take a look at the demo, in which the scrolling affects animations, camera position and color changes.
This have become possible thanks to the event puzzle that obtained a new option – scroll, while the get attribute puzzle was supplemented with the scrollX and scrollY properties.
See the tutorial below for detailed explanations:
The above-linked demo “Scroll Animation” is included in Verge3D examples that come with version 3.4.
Multi-line Puzzle and Scripting
A puzzle for typing multi-line text is now available in the Text category. It can be used with all puzzles that accept text as input.
Using this puzzle, you can insert big chunks of text into your application, whether it is a product description or some custom HTML/CSS markup.
The multi-line puzzle under the hood is based on the embeddable editor Ace, particularly used in Amazon’s Cloud9. The features it provides include syntax highlighting, line numbering, automatic indentation, code folding, and live syntax checking.
There is a checkbox called Skeletal Root for objects in Maya. If it is enabled for an object or a bone, all child bones will be regarded as a single animation skeleton. As a result, you can play animation only for this root object or bone, instead of having to trigger the animations for all the bones.
We have also adjusted the “Augmented Reality” demo in order to use this feature.
You can now create custom real-time shaders using the Open Shading Language (OSL). OSL code can be provided to the shader through the aiOslShader node.
The shaders themselves can be written using OSL code, or borrowed from some shader library.
If you are interested in manual converting and debugging OSL shaders, you can run the converter with the script
osl2glsl.py. The converter has been open-sourced under the MIT license and available on Github.
Other Maya-Specific Features
We supported skinning for multi-material objects for this release.
There were also some stability improvements in the exporter. Particularly, we fixed the export issue when shading groups were exported twice. We also fixed an export crash related to skinning.
New Audio Backend
The load sound puzzle has obtained a switcher between sound (meaning that Web Audio backend is enabled) and music (HTML audio backend).
The Web Audio backend allows for low-latency sound playback and gap-less audio looping. We have updated all our demos to use better audio (Scooter, Teapot Heater, Farmer’s Journey, etc).
We still recommend to use Web Audio only for short sound strips since it requires more memory and processing power to handle. For longer audio strips such as background music it is better to use HTML5 audio.
Detector.checkWebAudio() for this purpose.
The Puzzles editor’s category Sound/Video was renamed as Audio/Video.
Finally, the sound puzzles can now be used in the Init tab of the Puzzles editor, making it possible to pre-cache the sounds in advance.
Fog and Ray Casting
The add fog puzzle is now available, which you can use for adding the fog effect without coding.
You can specify the color and density for the fog, or use zeros either for RGB or for density to remove it whatsoever.
The ray cast puzzle is now available. You can find the description and a usage example on the reference page.
The enter AR mode puzzle now supports various positioning modes similarly to the VR counterpart: looking around, sitting or standing, room, walking, and viewer locked.
While for the sake of compatibility with old scenes, the default mode is set to be looking around (that is, when the user looks from the scene origin), the most feasible modes for AR are sitting or standing, room or walking.
Connectors, as we called them, are new convenience puzzles that you can use for organizing puzzles with return value (such as sounds).
They will spare you creating auxiliary variables and make it possible to group such puzzles together.
Thanks to the Extended Validation (EV) certificate which we use for signing the installer executable on Windows, there no longer will be shown a blue screen warning about unknown publisher.
The puzzle replace texture now supports assigning video textures to gltf-compatible materials. Also the replace texture and get texture param puzzles now correctly work with video textures.
We reduced memory consumption for JPEG textures by using the RGB format rather than RGBA for WebGL textures. Also, the puzzle export to gltf now directly exports JPEG textures instead of having first to convert them to PNG.
OrbitControls.screenSpacePanning to false, e.g.:
app.controls.screenSpacePanning = false;
The set style and set attribute puzzles now work in IE 11. Also the set style puzzle’s slot @media now works in Safari browser on macOS and iOS.
We added a new chapter to the User Manual where we outlined some hardware limitations you may encounter when creating your scenes. At the moment, it provides clarifications with regard to the “Too many attributes” error.
Puzzle active camera now properly works with enable/disable rendering puzzles (thanks for the report).
Image-based lighting can now be properly switched in VR mode (thanks for the report).
We fixed the issue with the export to gltf puzzle resulted in missing UVs.
We fixed the bug with camera tweening when the finished callback was not firing (thanks for the report).
We fixed the bug with shape keys and assigning materials (thanks for the report).
We removed a duplicate point event option from the event puzzle.
Material.toJSON() no longer crashes with node-based materials.
This update completes the salvo of Verge3D 3.4 releases for Blender, 3ds Max and Maya. As such, we have updated the distribution of Verge3D Ultimate Web Interactive Suite to reflect all changes introduced with these releases.