Release Notes/099/2019.30000 Experimental
Build 2019.30136 - Jun xx, 2019
- Python 3.7.2 is now the built-in version of python. Backward Compatibility warning, see below.
- Instancing from TOPs: On the Geometry COMP you can provide it with a TOP and it will render an instance for every pixel in the TOP. For example, floating point red, green, blue channels can be assigned to the instances' X Y and Z.
- In addition, you don't need to merge your CHOPs, TOPs, DATs or SOPs into one OP for instancing. The Instancing pages have been expanded so you can give a different OP for every instancing attribute type. You can even get position from a TOP and color from a CHOP, for example.
- Point Clouds and general data in TOPs on the GPU
- Point File In TOP - .xyz .obj, .FITS, .ply mesh files (Windows only) It will create a square multi-RGBA buffer, one pixel for each point, where pixels that are unused contain Nan (a special value called not-a-number). The first 4 channels are put into RGBA (buffer 1), the next 4 channels are in buffer 2, etc
- Buffer Select TOP - If there are multi-buffers in a Point File In TOP, you can pull out a buffer using this TOP.
- TOP Viewers now show
- 'Normalized Split' display mode for TOPs that shows each channel separately as a normalized grayscale image with min and max values overlaid.
- 'View as 3D Data' assuming the RGB channels contain XYZ point data, a 3D point viewer like in SOPs.
- Bind CHOP - Use CHOP channels for binding with parameters. Allows for multiple inputs (like old Override CHOP) or the bound parameter to update a channel's value. Includes a Callbacks DAT for querying where the change was initiated and then taking further actions via python script.
- Binding - Binding to DAT text or table cells is now supported.
- Function TOP - New TOP that allows mathematical functions to be done on pixels, similar to the Function CHOP.
- CHOP to TOP - When channel's length exceeds the GPU's texture width, new option to wrap the date into multiple rows of pixels.
- Video Device Out TOP - Added support for Fill + Key pairs for AJA devices.
- Video Device In TOP - Added support for using the HDMI input from io4K devices.
- Audio Movie CHOP - Added an option for switching audio tracks for movie files with multiple tracks.
- Keyboard In CHOP - Keys are now defined in a space or comma separated list rather than as neighbouring keys on the keyboard. Old files are automatically updated to the new system when they load (only works for constant parameters). Added shift key support to the 'Modifier Key' parameter menu.
- Keyboard In CHOP / Mouse In CHOP - Added 'Panels' parameter so events are only triggered when the given panel has focus.
- Object CHOP - Added 4x4 Matrix & Quaternion output.
- Object CHOP - Added "xord" and "rord" channels to Transform output.
- Object CHOP - Added "Swap Target/Reference" toggle parameter.
- Transform CHOP - Overhauled and improved.
- Now accepts two inputs. Added 'Invert Input 0' and 'Invert Input 1' parameters. Also added some warnings when two inputs are not compatible or invalid inputs.
- Added 4x4 Matrix & Quaternion output.
- Added toggle parameters to control output.
- Added Operation and Coefficient parameters for final output values.
- Added 'Unmatched Channels' parameter.
- Renamed 'Invert' to 'Post Invert' on the output page.
- Now accepts xord and rord channels as part of TRS channels.
- Swapped the Input and Transform pages.
- LTC In CHOP / LTC Out CHOP - Improved to support higher frame rates and more.
- LTC CHOPs now work for higher frame rates.
- LTC In will now adjust the frame value based on the value in the User 1 channel.
field1is now automatically used for frame rates over 30.
- Added an option for LTC In to display the absolute frame number.
- Timeline CHOP - Added options for seconds, absolute frames and absolute seconds.
- Hold CHOP - Added 'Hold per Samples' parameter.
- Web Server DAT - WIP
- Web Client DAT - New DAT that acts as a web client. Replaces the old Web DAT.
- Added request python method.
- Raster SOP - New SOP that takes in a TOP and converts it into a single-line SOP that can be used with the Laser CHOP.
- Aligning SOPs to their X Y and Z axes: Rectangle SOP / Box SOP / Circle SOP / Grid SOP / Sphere SOP / Superquad SOP / Torus SOP / Tube SOP - Added 'Anchor' parameters to main SOP generators. The position stays stationary regardless of rotate and scale settings.
- Select SOP - Now allow multiple input ops to be specified in the 'SOP' parameter, acting like a Merge SOP.
- Merge SOP - Added 'SOPs' parameter to accept multiple SOPs by reference.
- Text SOP - Added vertical alignment options: First Line, Top, Center, Bottom. The chosen field will be aligned to the x-axis.
- DATs - Execute DATs will now accept multiple OPs to monitor.
- Replicator COMP - Added a new onRemoveReplicant() callback to destroy replicators.
- new Header parameter type acts as a label and section divider. It is like parameter sections but you can give it a text string.
- Page Class - methods and members will now also work for built-in pages.
- Page.appendHeader(name) - Appends a custom parameter that displays only the value, left justified, with no editing ability. Can be used in combination with Par.startSection and Par.enable.
- Par Class.page member can now return a built-in page.
- Par Class - Added Par.subLabel member.
- Par Class - Added collapser/collapsable boolean members, these are for collapsable parameters like those found on MATs for texture map's Texture Sampling Parameters.
- OP Class.pages() method returns a list of the node's built-in pages.
- Added createFolders flag for .save() the functions in COMP, DAT, SOP, CHOP classes.
Bug Fixes and Improvements
- Upgraded to CUDA 10.1
- Notch TOP - Added group names as section headers when generating the custom parameters of a Notch block.
- Text TOP - Position Units can now be changed when using a Table DAT to describe text positions.
- DMX In CHOP / DMX Out CHOP - Increased the baud rate for reading and writing through generic serial interfaces.
- OSC In CHOP - Fixed stripping name segments.
- OSC In CHOP - Renamed 'Strip Prefix Segments' to 'Strip Name Prefixes'.
- OSC Out DAT - Removed optional input table which didn't make sense in an Output operator context.
- OP Find DAT - Fixed overcooking issue, as well as optimizations in calling the default DAT callbacks.
- Web DAT is deprecated.
BACKWARD COMPATIBILITY - Python 3.7.2 has 2 additional reserved keywords, 'async' and 'await'. Any scripts using these terms will need to be modified.
BACKWARD COMPATIBILITY - Transform CHOP was previously using rotate order as the output order even if the 'Custom Output Orders' was On.
BACKWARD COMPATIBILITY - Transform CHOP had Output Channels parameter removed, replaced by output toggles to customize the output channels.
BACKWARD COMPATIBILITY - Function CHOP fixed an issue where tanh(x) was being calculated as tan(x).
An Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.
Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.
The Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.
Binding is a Parameter Mode that ties two or more parameters together, where changing the value of any one of the bound parameters changes value of all the bound parameters. The actual value is stored in one of bound parameters, called the bind master parameter.
An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.
A built-in panel in TouchDesigner that contains a library of components and media that can be dragged-dropped into a TouchDesigner network.