First 2018.40000 experimental build
Release Notes
Nov 14, 2018
Unicode
-
Unicode - TouchDesigner now supports unicode everywhere. This allows the use of characters beyond standard 128 ASCII characters and adds builtin text support for most of the world's languages.
-
Use unicode almost anywhere you can type a string
-
File names and file paths can now contain unicode characters
-
DATs can now accept unicode characters directly
-
Text TOP and Text SOP accept unicode characters directly
-
Parameters can now contain unicode characters
-
Python can use unicode characters where supported
-
Some parts of TouchDesigner must still use standard alphanumberic characters, such as Operator names, Channel names, Custom Parameters, Custom Attributes.
-
Physics
-
Physics - A new group of Dynamics Components now support hard-body physics simulations using Bullet Physics Library.
-
Bullet Solver COMP - Acts as the physics simulation solver.
-
Actor COMP - Holds geometry that is acted upon by the physics simulation.
-
Force COMP - Applies forces to Actor COMPs that specify them.
-
Impulse Force COMP - Applies impulse forces to Actor COMPs, which are forces that happen in an instant.
-
Constraint COMP - Constrains Actor COMPs together in 3 ways i) Point To Point ii) Hinge iii) Slider.
-
Bullet Solver CHOP - Extracts information from a Bullet Solver COMP or Actor COMP as channels that can be manipulated in CHOPs and then fed back into the simulation using the Bullet Solver COMP's 'Feedback CHOP' parameter.
-
FBX and USD Support
-
-
Allows for non-destructive updating of FBX assets while keeping network customizations.
-
No longer converts to intermediate .tog geometry format.
-
Support for lights, cameras, groups, merging geometry
-
Supports Direct to GPU
-
Separate parameter page for embedded animation control
-
-
USD COMP - New Component that adds support for Pixar's USD file formats (.usd .usda .usdc .usdz). USD (Universal Scene Description) is a new interchange format for sharing 3D scenes and their assets between applications.
-
Allows for non-destructive updating of USD assets while keeping network customizations.
-
Imports scene materials using PBR
-
Supports Direct to GPU
-
Separate parameter page for embedded animation control
-
Other applications/platforms using USD currently include Houdini, Maya, Katana and iOS ARkit.
-
-
Import Select TOP, Import Select CHOP, Import Select SOP - These new operators work inside FBX COMPs and USD COMPs to extract textures, animation channels, or geoemtry meshes from the imported FBX/USD hierarchy into individual OPs.
Custom Operators
-
Custom OPs - Now C++ OPs you create have a new API allowing them to act like regular built-in operators. This includes giving them their own custom names and having them available in the OP Create Dialog.
-
CPlusPlus OPs and Custom OPs now work with Non-Commercial licenses, they no longer require a Commercial or Pro license.
New Operators
-
Line MAT - New MAT that provides constant shading of lines with 3D depth rolloff and color controls. Controls for line widths, line end points, drawing points, drawing vectors and arrows, and more are included.
-
Audio NDI CHOP - New CHOP to receive audio over NDI. New parameter for NDI Out TOP to select audio CHOP source.
-
Parameter DAT - New DAT for getting parameter information from any OP. Especially useful for parameters whose values are strings.
-
Process COMP - Work in progress, stay tuned for updates.
-
Widget COMP - New Panel COMP that will be a base for the upcoming Widget UI system. Work in progress, stay tuned for updates.
New Features
TOPs & Rendering
-
Movie File In TOP - Added 'num_decode_chunks' channel to Info CHOP to tell how many decode chunks a HAP movie is encoded with.
-
Movie File Out TOP - Added 'Stop-Frame Movie' output type.
-
Movie File Out TOP - Added support for outputting .gif files.
-
Video Device In TOP - Added support for AJA Kona HDMI.
-
Video Device Out TOP - Added support for using the failsafe on AJA Corvid 24 devices.
-
Text TOP - Added parameters to choose between text alignment using font metrics or the bounding box of the current string.
-
Render TOP - Added a rendering mode for UV unwrapping.
-
Render TOP - Added parameters to only render a few faces for a cube map if desired.
-
Render TOP - Added support for Image Output. This gives an extra buffer of arbitrary type/size/format that can be written to using imageStore() in GLSL MATs. The results can be accessed using a Render Select TOP.
CHOPs & DATs
-
SOP to CHOP - Added toggles to SOP to CHOP for Position, Color, Normal and Texture attributes. Attributes in 'Custom' have autonamed channels.
-
OSC Out CHOP OSC Out DAT TCP/IP DAT UDP Out DAT - New parameter to support multiple NICs (Network Interface Controllers).
-
OSC In CHOP - Added a non-timeslice mode that will only cook when receiving data.
-
Pattern CHOP - Added a new type called 'Step' and new 'Step per Cycle' and 'Phase Step per Channel' parameters.
-
Timer CHOP - Rewritten for optimization.
-
Keyboard In DAT - Tweaked for unicode support. A 'key' is defined as the best-match ASCII keyboard key pressed. While 'character' is the actual unicode character generated.
-
OP Find DAT additions.
-
Added option to show chosen filter values when combining 'any'.
-
Added new 'Incremental Update' option.
-
Added new 'Custom' combine option which allows an arbitary expression to combine filters.
-
Added new 'wirepath' column which provides a list of connected siblings to that object. Only supported for Object and Panel components.
-
Added new option 'Include Wire Hierarchy'.
-
-
Added .csv file format support for CHOPs and DATs.
API & SDK Updates
-
Updated to CUDA 9.2
-
Updated to AJA SDK 14.2.0.9
-
Updated ZED SDK to 2.5.1
-
Updated to OpenEXR 2.3.0 for Movie File In TOP.
-
Updated to Alembic 1.7.9 for Alembic SOP.
-
Update FBX to 2019.0 for FBX COMP.
-
Upgraded RealSense TOP / RealSense CHOP Windows API version to 11.0.27.1384 (2016 R3). This removes support for the R200 when using this API, but adds support for Hand Cursor as well as stability improvements.
New Python
-
Color Class - Added new Color class to tdu.
-
Prim Class - Prim.direction returns a normalized vector pointing from the centroid of the SOP to the centroid of the primitive.
-
Wave CHOP - Added support for .chanIndex and .sampleIndex
-
DAT Class - Added findCells and findCell python methods to search cells by value.
-
DAT Class functions for working with multiple rows/columns at once.
-
appendRows() - appends multiple rows to a Table DAT.
-
appendCols() - appends multiple columns to a Table DAT.
-
deleteRows() - deletes multiple rows in a Table DAT.
-
deleteCols() - deletes multiple columns in a Table DAT.
-
-
OpviewerCOMP_Class - opviewerCOMP.isViewable(path) - Tests for potential recursion to find out if an OP is acceptable for viewing.
-
Added tdu.match( pattern, list, caseSensitive=True) -> List which returns a subset of the input list where each element matches the pattern. Wildcards are supported.
Example: tdu.match('foo*', ['foo', 'bar']) # return ['foo'] tdu.match('b??', ['foo', 'bar']) # return ['bar']
Improvements and Bug Fixes
-
Render TOP - Added some warnings if alpha != 1.0 is detected but blending isn't enabled on the material.
-
Movie File In TOP - Improved H.265 decoding performance.
-
Movie File In TOP - Fixed crash that can occur when failing to open a .exr file.
-
Movie File In TOP - Removed global CPU movie cache feature, it was generally not useful.
-
Video Stream Out TOP - Applied hotfix to fix stack overflow vulnerability recently found in live555 library.
-
Text TOP - Adjust font spacing and layout to be more Unicode friendly.
-
Text TOP - Fixed some vertical font alignment issues on macOS.
-
GLSL TOP - Renamed Compute Shader output from sTDComputeOutputs to mTDComputeOutputs. Old name continues to work for backwards compatibility.
-
GLSL TOP - Fixed bug where output would not be set to a 3D texture/2D Array if Depth was left as 'Input' but the input didn't have depth (or there wasn't an input).
-
OSC In CHOP - Fixed delayed by one when non-queued and intermittent values sent.
-
DMX In CHOP / DMX Out CHOP - Removed restrictions from universes (prev. 0-15) to make it easer to work with external programs that only use a universe number.
-
Audio Stream Out CHOP - Fixed issue which caused audio loss after 35 minutes.
-
Expression CHOP - Added me.inputVal, me.chanIndex, me.sampleIndex to the Optimized Expression engine.
-
Noise CHOP - Added 'Offset' parameter to offset noise.
-
Noise SOP - Added 'Offset' parameter to offset noise.
-
Point SOP - Added support for many commonly used Python terms to the Optimized Expression engine for this SOP.
-
OP Find DAT improvements
-
Fixed output for non-default-only, when other fields are default
-
Fixed 'Combine Filters = Any' logic.
-
-
List COMP improvements and additions.
-
Added new attribute rowStretch. Allows for vertically stretchable rows.
-
Now updates panel values dragroll/u/v.
-
Now supports dropping of parameters, text, channels
-
-
Perform Window now unconstrained if pointing to Panel COMP set to unconstrained.
-
Added Optimized Expression support for panelCOMP.panel.<value>.val
-
CrashAutoSave.toe is now suffixed with the project's filename.
Backwards Compatibility
-
BACKWARDS COMPATIBILITY WARNING - 'Use Startup File' .toe file preferences need to be reset.
-
BACKWARDS COMPAITIBLITY WARNING - Evaluate DAT - The behavior of 'Convert Backslash Characters' has been streamlined, and only affects \\ \t \n and \r sequences. Furthermore, it will not strip quotes as it did previously.
-
BACKWARDS COMPATIBILITY ISSUE - GLSL TOP has replaced the binding/size parameters on the Atomic Counters page with a uniform name parameter.
Known Issues
-
On macOS, for some languages such as Japanese, unicode character input dialog is not enabled yet. You can copy & paste unicode characters in at this time. Fix in progress.
-
TouchPlayer may not be able to load movies from a unicode path.