Difference between revisions of "Release Notes/2020.40000/next"

From TouchDesigner Documentation
Jump to: navigation, search
Line 1: Line 1:
== Build 2020.44040 - Nov 30, 2020 ==
+
== Build 2020.44130 - Nov 30, 2020 ==
  
 
=== New Features ===
 
=== New Features ===

Revision as of 08:58, 1 December 2020

Build 2020.44130 - Nov 30, 2020[edit]

New Features[edit]

  • RealSense - Added Cubemos skeleton tracking support.
  • RealSense - BACKWARDS COMPATIBILITY WARNING - Removed support for the old Windows SDK and its tracking features. RealSense CHOP/RealSense TOP will now only support the cross platform librealsense API.
  • OpenCV - Updated to OpenCV 4.5
    • Python bindings are updated and it includes the full OpenCV toolkit, including CUDA and the opencv_contrib modules (except for things that can't be included due to licensing).
    • libs and headers used for OpenCV are now available in the Samples/CPlusPlus/3rdParty directory for easy use of OpenCV with C++ and Custom Operators.
  • Geometry COMP - Can now use 2D Texture Arrays and 3D Textures for TOP instancing data.
  • Geometry COMP - 'Rotate To/Look At' now has a control for Forward Direction. This controls what original axis will be rotated to point towards the desired target.
  • Convolve TOP - Added 'Scale' parameter.
  • Corner Pin TOP - Added parameter to switch between Bilinear and Perspective Mapping.
  • Lens Distort TOP - Added new parameters to scale and position the distorted image within the frame.
  • Lookup TOP - Added parameters to define the range of the input indices.
  • Point File In TOP - Added support for loading E57 point cloud files (Windows only).
  • Script TOP - Added loadByteArray() to load compressed data stored in bytearrays.
  • Script TOP - Allow source to be 3 channels for copyNumpyArray().
  • Script TOP - Added copyCUDAMemory, allowing data to be loaded from CUDA.
  • Video Device In TOP - Added support for controlling camera options for Flir (Point Grey) cameras.
  • Video Device In TOP - Added support for manual capture triggering for Flir (Point Grey) cameras.
  • Kinect Azure CHOP - Added parameters to mirror image positions vertically and to output aspect correct UVs. Older files will default to mirrored UVs for backwards compatibility.
  • OpenVR CHOP - Overhauled to bring more inline with Steam configurations and brings support for Value Index.
    • Added default bindings for Valve Index controllers.
    • Custom action manifests can now be selected to create CHOP channels filled in with values from arbitrary StreamVR controller bindings.
    • Added support for outputting Hand Skeleton Channels.
    • Added suport for Finger Curl channels in skeleton mode.
  • TOP to CHOP - Added parameters to exclude pixels with NaN values, or to exclude pixels with a zero in a selected mask channel.
  • Transform CHOP - Added 'Look At' parameters to create a rotation that aligns a given axis towards another object.
  • Transform XYZ CHOP - Added 'Look At' parameters to rotate the input points to face another another point.
  • Transform SOP - Added 'Forward' parameter to determine which axis is pointed towards the Look At object.
  • OP Find DAT - Added options for Parent and Global OP Shortcuts.

New Python[edit]

  • COMP Class.extensionsReady now dependably recooks in expressions.
  • CUDAMemory Class - Has new 'shape' member that better describes the width/height, number of components and dataType of the CUDA memory. Held in a CUDAMemoryShape Class.
  • tdu.Dependency - These objects can now be used in bind expressions.
  • Par Class.help - Get or set a custom parameter's help text. To see any parameter's help, rollover the paramater while holding the Alt key.
  • ParTuple Class - New class defining a set of parameters. Iterable for example: [p.name for p in n.parTuple.t]
  • ParTuple Class - Added support for drag-n-drop callbacks (both as source, and received).
  • ParTupleCollection Class - ie. op('geo1').parTuple.t
  • SOP Class.numVertices - The total number of vertices contained in all primitives within this SOP.
  • TOP Class - numpyArray() has new 'neverNone' boolean keyword argument. Will always return an image when this is True, even if delayed. In the case it wouldn't have in the past, it stalls until the image is downloaded.
  • WebclientDAT Class.request - Added 'pars' keyword.
  • WebclientDAT_Class.request - BACKWARD COMPATIBILITY Data keyword will no longer implicitly add to query parameter list for non-postfield HTTP operations (eg. GET). For adding query parameters instead use the new 'pars' keyword.

New Palette[edit]

  • Palette:camera improvements
    • Fixed home/frame commands when Render TOP geometry parameter is set to '*'
    • Added FrameLookAt function to camera palette component and shortcut keys for viewing top, left, right, etc

Bugs Fixes and Improvements[edit]

  • Geometry COMP - 'Don't Use Up Vector' mode for Look-at Up renamed to 'Use Roll'.
  • Parameter COMP - Display custom parameter pages with no parameters.
  • Parameter COMP - Added 'Separators' option when using Pages.
  • CHOP to TOP - Changed the extra pixel default color from 0,0,0,1 to 0,0,0,0
  • CHOP to TOP - BACKWARDS COMPATIBILITY WARNING Reworked Fit to Square layout. Auto-calculated image dimensions may no longer be the same as in previous versions.
  • Movie File In TOP - A few fixes for 'Filename based indexing' playback mode for image sequences.
  • Video Stream In TOP - Better buffering behavior when first connecting.
  • Phong MAT / PBR MAT - Output Shader no longer includes unused uniforms in the Vertex shader.
  • DMX In CHOP - Fixed rate output when using 'Packet per Channel'.
  • Select CHOP - Allow unlimited inputs to be connected.
  • TOP to CHOP - The default color is now used to fill in shorter channels when pixels have been excluded because of the active or NaN parameters.
  • OP Find DAT - Fixed bug where DAT would not respond to parameter changes or text content changes.
  • TOP to CHOP - Empty channels are no longer created when all pixels fail the active and NaN checks.
  • WebSocket DAT - Fixed onConnect()/onDisconnect() callbacks being triggered when there is no WebSocket connection
  • Custom Operators - Fixed crash that can occur if getInfoDATEntries() doesn't fill in some entries.
  • Custom Operators - Calls to the plugins are now wrapped in try/catch clauses to avoid crashing if there are bugs in the plugin code. Will emit a node error instead.
  • Matrix Class - BACKWARD COMPATIBILITY WARNING When building a Matrix from a Table DAT, fix the matrix being incorrectly transposed.
  • Privacy - Fixed Text TOP / Field COMPs not working in protected components.
  • Palette - Fixed issue with dragging components from user folders with unicode characters.
  • Widgets - Fixed vertical slider UI and various other widgets breaksing when updating to the latest version.
  • Some improvement to camera controls in 3D viewers.
  • Fixed broken outline shader in 3D viewers on macOS which resulted in reb and blue chackerboard when geometry selected.
  • Fixed a number of crashes.
    • Loading crash when Time Component insidde clone.
    • Crash when attaching input to Sequencer CHOP.
    • MacOS Movie File In and Movie File Out crashes that could occur.
    • Fixed a crash when trying to render some unicode newline characters.
    • Fixed crash on self deleting 'Help DAT' in panel.

Backward Compatibility[edit]

  • BACKWARD COMPATIBILITY WARNING RealSense - Removed support for the old Windows SDK and its tracking features. RealSense CHOP/RealSense TOP will now only support the cross platform librealsense API.
  • BACKWARD COMPATIBILITY WARNING OpenVR CHOP - Left and Right Controller toggles have been removed, both controllers will always be output in that mode now.
  • BACKWARD COMPATIBILITY WARNING CHOP to TOP - Reworked Fit to Square layout. Auto-calculated image dimensions may no longer be the same as in previous versions.
  • BACKWARD COMPATIBILITY - WebclientDAT_Class.request data keyword will no longer implicitly add to query parameter list for non-postfield HTTP operations (eg. GET). For adding query parameters instead use the new 'pars' keyword.
  • BACKWARD COMPATIBILITY WARNING WebSocket DAT - Removed onConnectionReady callback.
  • BACKWARD COMPATIBILITY WARNING Matrix Class - When building a Matrix from a Table DAT, fix the matrix being incorrectly transposed.

Known Issues[edit]

  • Font Size on Windows and Font Type on macOS are not the standard defaults in DAT viewers, Textport, parameter dialogs and other parts of the UI. Using stand-ins for now while waiting for a 3rd party library fix.

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.

An Operator Family which operate on Channels (a series of numbers) which are used for animation, audio, mathematics, simulation, logic, UI construction, and many other applications.

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.

The OpenGL code that creates a rendered image from polygons and textures. Shaders can be made of up to three parts: Vertex Shader, Geometry Shader and/or Pixel Shader, which are either embedded inside Materials, or placed in Text DATs and referenced to a GLSL Material.

A sequence of vertices form a Polygon in a SOP. Each vertex is an integer index into the Point List, and each Point holds an XYZ position and attributes like Normals and Texture Coordinates.

A CHOP outputs one or more channels, where a channel is simply a sequence of numbers, representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. See also Export.

An Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a command Script, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.

An Operator Family that contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Network Path.

A dialog box in which commands and scripts can entered manually. Script errors and python print() messages are also output to the textport.