- fix bug where a bypassed node would still cook unnecessarily.
OperatorPathnow have checks in case they refer to themselves or their own node, which previously created an infinite loop.
This version introduces AUDIO Nodes, which allows the creation and manipulation of sounds. Previously, the only way to have sound was to import audio files (.mp3 or .wav) with the OBJ/PositionalAudio. Now you can import those via the AUDIO/File, and also create synthetisers to create sounds from scratch with:
And you can add sound effects using:
In future versions, it will also be possible to import audio samples to be used instead of the synthetiser sounds.
It was previously possible to animate an object from 2 different ANIM node. That could create conflicts where the same property was animated with different parameters, leading to a jittery animation. The animation system now has protections to prevent this, and the choice is given to the user when starting an animation, to either make this animation stoppable or not.
- If it is stoppable, when a new animation starts on that same property, it stops the first one.
- If it is NOT stoppable, when a new animation attempts to start, it is immediately cancelled.
To set this, the ANIM/Null has a
Other changes for anim nodes are:
matrixAutoUpdateon by default. That parameter was initially off by default, but it was easy to forget to set it to true when animating position, rotation or scale.
ANIM/PropertyName has a new set of presets to quickly set properties like
position.yand similar ones for
- add node EVENT/Param to trigger events when a parameter changes.
- add node EVENT/IntersectData: Previously, we could use the
geoAttributeparameters on the EVENT/Raycast node to fetch attribute from the geometry under the mouse cursor. But we could only read 1 attribute at a time. Now, by piping the raycast into multiple EVENT/IntersectData, you can access multiple attributes.
- EVENT/NodeCook: fix bug where param registerOnlyFirstCooks was not properly used.
OBJ/PolarTransform: add polarGrid helper to help see the origin of the polarTransform.
SOP/ObjectProperties now accepts expressions, which allows for instance to create a different name for the input objects, using name_
- add SOP/PlaneHelper.
SOP/Torus: add open and cap parameters.
- SOP/Polywire: the circles creating the sections are now oriented correctly.
- SOP/Reflector: add direction parameter, making it clearer which direction the reflector is reflecting.
- SOP/Scatter: large performance gain, allowing to create 1 million points in less than 1 second.
- SOP/ParticlesSystemGPU: add
activeparameter. When the parameter is set to 0, the particles are not simulated. This can be very useful to trigger the particles to start at a specific time, or to pause them without having to pause the whole scene.
When using sound, browser security features require a user interaction before playing any sounds. This interaction could be a click or keypress. To help this, when selecting the root node (from the top menu -> Windows -> Root Node Params... ), you can see a new parameter
displayAudioIcon. When it is set to 1, you can see a new icon on the top right corner of the viewer.
Clicking this icon will toggle the sound on and off of any OBJ/AudioListener will toggle the sound on and off.
Also, when a user views your 3D experience, clicking this a first time will generate the interaction required to play sound. It is therefore recommended to set the
soundOn of the OBJ/AudioListener to 0, and let users toggle the sound on via the icon.
The palette plugin is now merged into the core engine, which gives you easy access to 2 nodes: - SOP/Palette: creates a color attribute on your geometry based on a palette - COP/Palette: creates a texture based on a palette
- Add LDraw loader, which allows you to load lego models from https://omr.ldraw.org/files.
- improve viewer management: The viewer would previously need to re-create the gl context when hidden and shown again, which made the environment map disappear, which affected the lighting. The viewer is now re-used, so the lighting should not be affected.
- internal code change regarding copy/paste change. This may prevent you from copy pasting nodes from an editor version <=204 into 205, but it still works when copy pasting in between editors either <=204 or >205.