Bloom TOP update, YAML syntax highlighting, Constant MAT point colors, sequential parameters support in Parameter DAT, improvements and bug fixes
Release Notes
Feb 07, 2024
New Features
- Bloom TOP - Reworked algorithm for better bloom characteristics with less artifacts, added new parameters for better control. Note: Previous bloom settings may have to be adjusted to get a similar effect.
- Reorganized parameters into sections for preprocess, bloom radius, bloom controls, and output.
- Bloom Gamma replaced by 'Bloom Threshold', 'Bloom S-Curve', and 'Bloom Fill' parameters, giving more control over bloom spread and falloff.
- Bloom Alpha toggle parameter removed.
- Parameter DAT - Added Sequential Parameter attributes: sequence, blockindex, basename, numblocks
- Constant MAT - Added new 'Apply Point Color' parameter which uses the color point attribute to apply color to the geometry.
- GLSL MAT - Added support for Specialization Constants.
- Added new menu to Object Components to give better control of parent transforms.
- DATs - Added YAML syntax highlighting for DATs, see Common page parameters.
New Python
- App Class.applicationsFolder - A new python function to return the standard install location on the system, for example C:/Program Files on Windows.
- Attributes Class - Fixed erroneous cook dependency loop on creating pointAttribs. Now doesn't recook the geo if the OP is already being cooked.
- DAT Class - cell(),findCell(),cells(),findCells() have a new bool argument `val`. `val=True` returns list of just cell entries instead of list of cells.
- OP Class - .pages .customPages now support indexing by name.
- OP Class.curSeq - Returns the sequence of the currently evaluated parameter.
- OP Class.unload() - Added new method to all OPs to unload their memory without having to disable their cooking via a parent COMP.
- OP Class - parGroups(pattern) -> list - Returns a (possibly empty) list of Parameter Group objects that match the pattern.
For example:
n.parGroups() #all n.parGroups('Color*') #all begininng with Color
For singles it is still quicker to use: n.parGroup.Color or n.parGroup['Color']
- Par Class.evalFile() - A new method to evaluate a parameter as a file path and return a tdu.FileInfo object. Uses the node's relative path behavior to expand the string to an absolute file path if applicable.
- Sequence Class - Blockid parameters. If any block parameters have a base name of 'blockid' they will automatically be maintained with unique values during growing, copying and inserting operations. This allows accessing block parameters consistently, regardless of their final order.
To access a block by this unique id use the Sequence.id() function. The id(val) function will return the block whose blockid parameter matches the given value.For example:v = n.seq.Segments.id(3).par.start
- UI_Class.masterVolume - To control the volume of TouchDesigner outputs is now working on macOS.
New Palette
- Palette:camSchnappr - Adjustments for new touchOSC control interface as well as a 'Live Updates' toggle to keep Auto Blend mask updating at all times.
- touchOSC file contained as a vfs file can be saved out via OSC parameter page.
- Fixed 'Autoblend' references not clearing when deleteing them on camSchnappr parameters.
- Modifier key to select and delete points on macOS changed to Cmd key.
- Palette:gestureCapture - v8.0.5 - Cosmetic improvements to defaults, outputs more data.
- Palette:lister - Fixed an issue where font face won't be found in certain situations.
- Palette:logger - v2.2.7 - Swapping Debug and Info log levels in level par menu so that it makes more sense.
- Palette:opBrowser - Make "Filter Roots Only" work to show children.
- Palette:particlesGpu - Source generator's sphere radius was improperly calculated.
- Palette:pointGenerator - Sphere radius was improperly calculated.
- Palette:quadReproject - v0.3.0 - Refactor for quadReproject COMP to internally rely on the newly introduced custom par sequences.
- Palette:sceneChanger - v 1.0.8 - Added select to Resolution TOP to save memory.
- Palette:sickEngine - Fixed file path to sickCore component.
- TDSynchro - v0.1.4 - Fixed expression reference error in the synchroCache component.
- Widgets - v2.1.104
- Fixed display issues with folder tab widget.
- Removed erroneous parameters from field and reference widgets.
Bug Fixes and Improvements
- RealSense CHOP - DEPRECATED: Skeleton tracking features no longer licensable by Cubemos.
- Upgrade to depthAI 2.24.0 - OAK-D
- Upgrade to ShowNET API v1.3 - Laser Device CHOP
COMP
- Engine COMP & TouchEngine - Fixed missing custom menu parameters.
- Fixed bad output when input textures are applied as color maps on MATs.
- FBX COMP - Fixed material deform crash.
- Nvidia Flex Solver COMP - Fixed crash from pulsing init/start in quick succession.
- Parameter COMP - When 'Allow Expansion' disabled, also disable drag/drop + menu choices.
- Select COMP - Fixed an issue of not passing clickthrough events.
- Text COMP - Fixed an editing bug where keyboard events were incorrectly passed along to the main TouchDesigner UI.
- USD COMP - Fixed PBR material crash.
TOP
- Bloom TOP - Fixed for crash when resolution is less than 8 pixels.
- CHOP to TOP - Fixed an issue filling default values into RGBA textures.
- Depth TOP - Fixed 'Depth Peel Layer' not getting the correct depth buffer.
- Kinect Azure TOP / Orbbec TOP - Added check that only one Orbbec node type can be activated in a single project.
- Leap Motion TOP / Leap Motion CHOP - Changed the default library folder to match the default SDK installation folder.
- Movie File In TOP - Fixed input timecode so that it's rate-adjusted to the movie file rate.
- Movie File In TOP - Fixed file_resx and file_resy info channels not updating when 'Upload Image' was turned off.
- NDI In TOP - Fixed broken images at some resolutions on macOS.
- Noise TOP - 'Derivative' toggle parameter will get disabled if the selected noise type doesn't support derivatives. For 2D derivatives, the z derivative value will now be 0 instead of 1.
- Notch TOP - Fixed crash when using a Notch block that contained a Kinect Azure operator.
- Orbbec TOP - Enabled Orbbec TOP on Mac OS (Apple Silicon only).
- Point File In TOP - Fixed a bug where EXR images are loaded in upside down. Furthermore, the original dimensions of EXR images are preserved again like in previous releases.
- Render Select TOP - Fixed crash that can occur when deleting this node in some cases.
- Spectrum TOP - High resolution crash fixed.
- Time Machine TOP - Now works better with Texture Reference operators such as the Select TOP and Null TOP.
- Video Device In TOP - Fixed tearing issues on AJA devices using 'Sync To Input Frame'.
CHOP
- Lag CHOP - Reset pulse now works in 'Lag per Sample' mode.
- LTC Out CHOP - Rename parameter "High FPS Behaviour" to "High FPS Behavior".
- Object CHOP - Assume a default pivot of (0,0,0) not (1,1,1) when specifying by CHOP channels.
- OSC Out CHOP - Fixed 'Send Rate' parameter for Sample and Transpose data formats.
- Pangolin CHOP - Fixed cases where TouchDesigner could cause Pangolin BEYOND to crash.
- Trigger CHOP - Fixed issue where the ADSR envelope would be incomplete when minimum sustain length was non-zero, in non-timesliced mode.
SOP
- Alembic SOP - Fixes to custom attribute importing.
DAT
- File In DAT / File In CHOP / File In SOP - Fixed issue which prevented some file changes being detected.
- Fixed issue which prevented external edits to files being detected sometimes.
- Folder DAT and File OPs - Fixed a crash which could occur when opening projects if there was a filesystem error for an external folder or file.
- Folder DAT - Numerous improvements
- Fixed an issue which prevented folders being matched if the pattern didn't end in '/' or '*'.
- Fixed an issue which matched all extensions if none were set.
- Fixed wrong values for dates (when enabled) on macOS.
- Media File Info DAT - Fixed crash that can occur when deleting if the node hasn't cooked and improved behavior when 'File Open Timeout' is 0.
- TCP/IP DAT - Fixed a bug on macOS where callbacks could be triggered out of order.
MAT
- Phong MAT - Fixed some issues when displacing vertices by the height map.
Misc
- TouchEngine - Fixed an issue which caused older hosts to receive 0 as min & max values for numeric custom parameters which weren't clamped.
- MIDI - Fixed random MIDI messages when unplugging then re-plugging in devices.
- Custom Operators - Added access to the Windows HISNTANCE as part of the OP_NodeInfo class.
- OpenCV - Fixed import cv2 not working on Intel macOS.
- Python - Fixed an issue which caused a hang on quit on macOS after some external Python modules were imported.
- Fixed nested panel sliders not being clickable in some panel layouts (eg kantanMapper drop menus not working).
- Fixed issue entering unicode characters using the Windows IME.
- Fixed a bug using '../' relative paths with the 'Relative to Tox File' path behaviour.
- Fixed file parameter tooltip so that it properly reflects the relative file path behavior.
- Relative paths in bound file parameters are now evaluated using the base path of the bind master.
- Custom parameters now use the relative file path behavior of their own node. Only the External .tox path uses the parent's path behavior.
- Fixed custom menus not updating to selected value when names/labels are changed in same script.
- Added ability to remove User Site Packages from Python Search Path.