Difference between revisions of "Release Notes/099/2019.10000"
|Line 1:||Line 1:|
== Official Build -
== Official Build - .Series ==
=== New Features ===
=== New Features ===
Revision as of 07:14, 17 April 2019
Official Build - 2019.10000 Series
Major New Additions
- Widgets - A new set of UI components for building control panels, performance interfaces, applications and systems. Designed to be modular and updatable, this new architecture is fully customizable and extendible and will be TouchDesigner's primary UI toolkit going forward. This first release of Basic Widgets can be found in the Palette under UI > Basic Widgets. In the future there will also be a more advanced widget set for system builders, but we are looking for feedback on Basic Widgets first.
- Binding - New parameter mode for bi-direction control of parameters.
- Flow - Now supporting Nvidia Flow - Requires Windows 10 with Nvidia GPU. Note - Work in progress.
- Flow is a volumetric fluid based simulation of a burning gas system. Control the 3 main factors of temperature, fuel, and smoke to create amazing fire and smoke simulations.
- Nvidia Flow Emitter COMP - Sets up an emitter and material. Controls the amount of fuel injected into the system as well as the temperature and amount of smoke. Material settings for the various components in the simulation are provided.
- Nvidia Flow TOP - Runs the simulation and renders the result. Controls for the simulation include damping and fading, vorticty, and burn control for each step of the simulation.
- Web Render TOP - Now supported on macOS.
- Camera COMP - Quad Reproject feature
- Movie File In TOP - Added support for hardware decoder on Nvidia GPUs. New Hardware Decode parameter on the 'Tune' page enables it.
- Offline documentation now included with TouchDesigner installation. When without an internet connection, TouchDesigner will automatically use offline help.
- Light COMP - Added 'Projection Map Type' parameter that allows selecting a new 'Point (Equirectangular)' projection type. This will project an equirectangular texture out in all directions from the light's position.
- USD COMP - Added "Generate Actor COMPs" parameter which generates Actor COMPs instead of Geometry COMPs in the USD network for use with Bullet Solver COMP.
- USD COMP / FBX COMP - Added a 'Callbacks DAT' parameter and callbacks DAT with an onImport function. This allows for post-processing the imported geometry network immediately after import.
- Field COMP - Added parameters for total digits, decimal digits and trailing zeroes to handle float and integer fields. Floating values will rounded to the number of decimal digits.
- [Nvidia Flow TOP]]
- RealSense TOP - Added support for RealSense D435i.
- Video Device Out TOP - Added support for external reference sync input for AJA devices.
- TOPs - Added "Parent Panel Size" entry to Output Resolution menu parameter; this will set the resolution to the width/height of the Parent Panel. If it is not the immediate parent, it will look up the hierarchy and use the width/height of the first parent panel found.
- Ableton Link CHOP - Upgraded to Link SDK 3.02 and enabled 'Start/Stop Sync' which addresses issues with Ableton 10 pauses. Also added missing Info CHOP channels for this CHOP.
- OpenVR CHOP - New Info DAT information which contains the serial numbers for controllers. This offers a reliable way to have the same controller be used for the same action regardless of when they become visible to the system.
- DMX In CHOP - Improvements
- Added 'Clear Output' parameter.
- Added 'Keep Values on Save' toggle to keep values when saving and reloading a project. When off values will be set to 0 when project is reloaded.
- Shuffle CHOP - Added "Sequence All Samples Every Nth Channel" option.
- Clock CHOP - Added second input for specifying a start date and new channel for 'days' elapsed.
- Shuffle CHOP - Added "Sequence All Samples By Name" option.
- Text SOP - New 'Closed Polygons (Filled Holes)' output type. Particularly useful for use with the Line MAT.
- Convert SOP - Added 'Particles Per Point' and Vertex.
- Particle SOP - Added new parameter 'Surface Attraction' to control the surface attraction force.
- Art-Net DAT - Added local address parameters that allow for specification of which network card the ArtPoll packet is sent from.
- Folder DAT - Added callbacks parameter and attached DAT with 4 available callbacks: onInitGetColumnNames, onGetValues, onGetInclude, onFound
- Added UTF-8 support to various callback parameters:
- Art-NET DAT: short name, long name, node report
- MQTT Client DAT: label, topic
- Web Socket DAT: text
- DAT.text member for Table DATs
Interface - UI
- Performance Monitor improvements
- Added line numbers to make filtering easier.
- Improved reporting and descriptions of certain events.
- Added 'Filter Count Trigger' - If value is above zero it will stop analyzing only when that many filtered lines are received. Useful for capturing specific event descriptions.
- Added Python custom parameters and ability to evaluate them as PyObjects. Futhermore;
- Page Class Page.appendPar(name, par=Par)
- Create a custom parameter matching the specified parameter as closely as possible.
- Following members are copied: size, style, label, default, defaultExpr, min, max, clampMin, clampMax, normMin, normMax, enable, readOnly, password, menuNames, menuLabels, menuSource
- These are *not* copied: value, expression, binding, order, styleCloneImmune, startSection
p = op('geo1').par.tx ; op('base1').customPages.appendPar(p.tupletName, par=p)
- OP Class
- Returns an expression from this operator to the OP that is passed as the argument. See OP.relativePath for a version using relative path constants.
- Keyword changed to toParName.
- OP Class
- New keyword 'parName' to return expression to parameter instead.
- run() methods (Cell, OP, td) now include 'asParameter' keyword (default False). When set to true, the command is executed as though it were at the same location as a fromOP parameter.
- ListAttribute.sizeInPoints to control text size units (default False). When True size is in points, when False it is in pixels.
- DAT Class.replaceRow - Replace a row in a table.
- DAT Class.replaceCol - Replace a column in a table.
- OP Class.copyParameters - Added custom/builtin keywords that can disable copying of custom or builtin parameters.
- OP.localCook moved to COMP.localCook, always True for OPs internally.
- Body Class - Represents a body in a Bullet Solver simulation.
- ActorCOMP Class.bodies - Returns the bodies within this operator.
- BulletsolverCOMP Class.actors - Returns the Actors within this operator.
- Par.bindMaster - The object to which this parameter is bound to, possibly None.
- Par.bindReferences - The list of objects which bind to this parameter, possibly empty.
- Widgets - Widget kit
- Added UI/Basic Widgets/Tools/autoUI.tox
- Tree Browser component was added to the palette.
SDK and API Updates
- NDI SDK updated to 3.8
- Updated to AJA SDK 184.108.40.206
- Updated to Ableton Link SDK 3.02
Bug Fixes and Improvements
COMPs - Components
- FBX COMP / USD COMP - Added 'Reload File' pulse that simply reloads any assets from the file (making no changes to the network inside the COMP).
- Fixed broken perspective view using RMB to select it in 3D viewers.
- Fixed guide point and tangent displays in 3D viewers on macOS.
- Improved homing of viewers in cases using GPU Direct geometry.
- Panel Alignment 'Max Per Line' now takes into consideration the widths and heights of all the children to work better with Fill Mode.
- Parameter help now shown for disabled parameters (alt+rollover).
- Fixed issue with Select COMPs causing unncessary cooking.
- Fixed issue with panels not staying with mouse while dragging/repositioning.
- PanelCOMP.clickChild(N) now clicks the Nth visible panel child, not simply the Nth panel child.
- GLSL TOP - Fixed bug where sometimes the uTD* uniforms wouldn't have correct values, uTDOutputInfo.res for example.
- Text TOP - Fixed unicode text sometimes being spaced incorrectly when using Polygon or Mipmapped Texture modes.
- Text TOP - Fixed bug where text would not show up using Mipmapped Texture mode.
- Web Render TOP - Fixed excessive CPU usage on macOS.
- RealSense TOP - Fixed crash when using Windows SDK API.
- Movie File In TOP - Fixed incorrect alpha when using hardware decoding.
- Text TOP - Some tweaks to line breaking behavior for word-wrap.
- NDI In TOP - Switching to a fail-over source works better now.
- NDI Out TOP / NDI Out TOP - Better audio behavior in general.
- NDI Out TOP - Fixed audio not working when coming from some CHOP types. This previously gave a warning that the CHOP must be timesliced.
- NDI Out TOP - Fixed a crash that can occur when sending audio in some cases.
- NDI Out TOP - Better audio behavior when sending at low frame rates.
- Movie File Out TOP - Fixed audio output issues for ALAC and mp3.
- Movie File Out TOP - Fixed some issues with incorrect frames being written when writing one frame at a time for images/sequences.
- TOP - Fixed Viewer Smoothness not working on non 2D Textures.
- Movie File Out TOP - Fixed H264 and H265 movies saving out an extra frame.
- Movie File Out TOP - Fixed 'Max Threads' not working correctly when trying to change it after a recording has been done.
- Text TOP - Change 'Language' to 'Break Language' and make it a menu.
- Text TOP - Fixed crash when referring to an outside Field Component.
CHOPs - Channels
- Timer CHOP's Cue and goTo() method now supported when 'Segment Method' is set to Parallel Timers.
- Render Pick CHOP - Added queue parameters.
- Audio NDI CHOP - Fixed some issues with audio playback. Crackles, static and lost data.
- TOP to CHOP - Fixed bug where connecting an input wouldn't always re-sample the image at the specified input UVs.
- Parameter CHOP/Parameter DAT - Added drop-down menu for selecting the parameters.
- OSC In CHOP - Now starts up with correct saved values when using non-queued mode.
- Delete CHOP - Added 'Output Unique Samples' parameter to output only unique samples within a certain tolerance.
- CHOP Export - Improvements made to avoid conflicts when copy and pasting.
- Beat CHOP no longer advances when timeline is paused (but 'power' is on and still cooking).
- Timer CHOP - Fixed 'On Done' menu behaviour, as well as with cycling.
- Fixed .bchan files not loading correctly.
- Copy SOP - Fixed excessive cooking that could sometimes occur when fetching stamp parameters.
- Point SOP - Fixed crash that can occur if the 2nd input doesn't have the same attributes as the first input and is referenced using one of the pointSOP Class members.
- Text SOP - Added support for outputting open polygons.
- Text SOP - Added support for extruding on macOS.
- Text SOP - Change 'Language' to 'Break Language' and make it a menu.
- Copy SOP - Reorganized 'Attribute' page with popup menus.
- GLSL MAT - Fixed crash that occurs when using 3D textures as a map.
- CHOP Execute DAT - Will now execute earlier in the frame, trying to do their operations before other nodes that rely on their scripts cook.
- Folder DAT - Fixed double // in paths when looking at the root of a drive such as C:, F: etc.
- OP Find DAT - Fixed overcooking when target OP select state changed.
- OP Find DAT - Fixed very long incremental searches when starting from root.
- Substitute DAT - Fixed issues when using wildcard or unicode in this DAT's parameters.
- XML DAT working again.
- DAT - Fixed DATs to allow inserting or appending its own columns/rows.
- Text DAT - Fixed cases where extra random characters were added to DATs when saving from an external editor.
- OSC In CHOP / OSC In DAT / UDP In DAT / EtherDream DAT - Added a local address parameter to only listen on a specific IP. Great for working with multiple network interface controllers (NICs).
- CPlusPlus TOP / CPlusPlus CHOP / CPlusPlus SOP / CPlusPlus DAT - cookCount added as available data to the OP_*Input classes.
- Custom Operators - Adding a /Plugins directory next to the .toe file that will also be searched for custom operators. This allows projects to move more easily between machines that do not have the custom OPs installed, and helps manage project-based custom OPs more easily for deployment.
- Initialize CUDA for any C++/Custom OP, just in case it ends up using it internally.
- Bound parameters now respect their local ranges, even if bound to an out-of-range master value.
- Binding - Pulse parameters can now be directly linked through Binding.
- Faster file saving when saving with Dongle Privacy.
- Private .toe file access expanded.
- External Component inside private .toe can now be saved without the component becoming private.
- Toe file can be saved by python script (privacy maintained).
- OP Snippets updated. You can also right-click on an OP (in the network or in the OP Create Dialog) and get to its OP Snippet from the popup menu.
- In/Out operators ordering from top to bottom on the outside of the component can now controlled by a parameter.
- Allow multiple instances of TouchDesigner to run at the same time on macOS.
- Fixed a bug where fetched list attributes were not initializing until first render.
- Fixed issue where Windows Drag-Drop broke outside TouchDesigner in some cases.
- Fixed missing color picker grid in the popup color dialog.
- Fixed Shift+Escape being lost in some cases resulting in getting stuck in Perform Mode.
- Fixed case where first ASIO device on Windows 10 systems were being skipped.
- Fixed intermittent crash when launching external editor on DAT.
- Fixed some cases where op() expressions would evaluate to old results.
- Fixed orphaned replicants when cutting and pasting replicators and changing size in the same frame.
- Resolved loading issues with dynamic or custom menus that were evaluating expressions.
- Fixed empty space color around panels viewed in a pane.
- Fixed broken cube map transformation.
- Fixed loading of .csv files ending with a sequence of commas.
- Fixed crash when trying to load external .tox files.
- Fixed issue where Custom OP parameter dialogs sometimes load empty or unresponsive.
- Fixed a number of geometry file type associations on macOS.
- Improved behavior for floating dialogs so application shortcuts are not respected (undo, save, etc).
- Changed default preference for filename increment to be "On and Save to Backup Folder".
- TUIK has been removed from the Palette. RIP TUIK, thank you for your service.
- Fixed a crash during startup on macOS 10.11.
- Fixed bug with cached parameters when placing OPs.
- Fixed read-only parameters updating in parameter dialog when set via python.
- A bound menu now evaluates to string, not its master's type.
- Expressions referencing iop. or parent. shortcuts now update properly.
- Fixed setting of string parameters when multiple OPs selected.
- Root component is now a Base COMP, previously a Null COMP.
- Improved handling of CHOP Exports when copy and pasting.
- Improved handling of relative paths when using 'Collapse Selected' option to encapsulate OPs into a new component.
- Fixed perform window size when panel set to 'Size From Window'.
- Fixed 'Reset Parameter' bug causing lost unused string expressions on save (ie. parameter was in Expr or Export mode).
- Allow dragging/dropping of string parameters onto each other.
- Palette:kantanMapper - Improvements
- Palette:moviePlayer - Improvements
- Added option to enable/disable roller wheel zoom and mouse left/middle click/drag pan/zoom controls.
- Added 'Go Back to Previous Movie' pulse button parameter.
- movieEngine - Click/drag on image to scrub. Shift click/drag to scrub and pause. Middle click to pause/play.
- You can zoom into the movie image using (like in the network editor) the roller wheel, and left and middle buttons to pan/zoom. Zooming up-close, the pixels become discrete squares, and their values are displayed at the bottom right.
- Control Panel Always On - on by default now.
- Presets - Bug fixes and the folowing additions
- Update pulse not working on Presets Component
- Delete pulse not working on Presets Component
- Controls list container delete preset button width stretched
- Settings/bankParSettings initial rollover error from trying to access None type - caused by not yet stored previous values.
- Blend enabled for Presetblendtime par in parent in init when PresetsComp reinitialized after previously being initialized (these pars should be filtered so not to appear in the settings list)
- Pulse parameters disabled by default
- Created internal preset values DAT inspector.
- Added functionality for updating all presets in all banks when a parameter is added, removed or renamed on the target component. A confirm update dialog is created when a change is recognized. Also a pulse button has been added to the Setup page to manually update all presets with new or changed parameters. This is useful if a default value (other than the TD default value for the parameter type) for the new parameter for all the updated presets is wanted to be set. The workflow is as follows:
- Added new parameter(s)
- When confirm dialog opens and asks to update all presets, press cancel
- Set the value of the parameter
- Press Update All Presets button on Setup page and confirm.
- Now all previously stored presets will have the desired value(s) set in the new parameters.
disable both recall and blend of parameters with expressions by default on store of preset with expression in parameter filter target components "presets parameters" in settings list so they are not viewable or editable.
- Palette:probe component enhancements.
- Cook times of nodes that haven't cooked recently are better-reported.
- Can use mouse wheel to zoom large networks (but not go between networks yet).
- Palette:kantanMapper general bug fixes.
- Palette:camSchnappr bug fixes and improvements.
- Autoblend fixed.
- Autoblend can now be shown in preview output whereas previously the mask was not applied to this output.
- Added additional parameters for the Autoblend feature to control the blend curve via RGB gamma/luminance based on Paul Bourke's Edge Blending article from http://paulbourke.net/miscellaneous/edgeblend/
math.floor()not returning ints for optimized expressions.
- BACKWARDS COMPATIBILITY WARNING -
- BACKWARDS COMPATIBILITY WARNING - Par.cloneImmune renamed to Par.styleCloneImmune, update any scripts that may have relied on this.
- BACKWARDS COMPATIBILITY WARNING - For CPlusPlus nodes, matrices are now returned in column major (vector on the right) convention to be more consistent with other code such as GLSL and tdu.Matrix classes.
- BACKWARDS COMPATIBILITY WARNING * - Actor COMP moved Perform Contact Test toggle to Bullet Solver COMP.
- BACKWARDS COMPATIBILITY WARNING * - Bullet Solver COMP / Actor COMP moved 'Callbacks DAT' parameter and docked DAT from Actor COMP to Bullet Solver COMP.