Substance Designer 2019.1 brings a new update to the Substance Engine to expand further its capabilities as well as additional new filters.
New Value Processor Node
The Substance Engine is now in version 7 and with it brings the new concept of "Values" inside the compositing graph. Values are numbers and not textures and as such can be used to perform various computations that can be shared across nodes via the function graphs and compositing graphs. The Value Processor node can read an input image and compute a single output value.
The Value Processor node is not alone, to be able transit information across graph some changes and additions have been made :
- Output nodes can be directly fed with a value and not necessarily an image anymore.
- A new Input node named "Input Value" has been added so that graph can query Values.
- Nodes now have a new category below their parameters named "Input Values" which can be used to create input values for the node itself.
The input values can then be referenced inside the function graph via the "Get" nodes.
As with every major Substance Engine change, the compatibility mode is set to the previous version (new version 6 by default). Which means incompatible nodes will have a yellow border in the graph. To disable/hide the yellow border simply change the engine version in the main settings to the latest version (via the Project settings) :
Support of Optix in Bakers
The last update of Substance Designer introduced DXR which allows to perform GPU raytracing on compatible RTX compatible hardware. We now added support for Optix which allows to raytrace on other Nvidia's GPUs even under Linux. You can expect baking at least 5 times faster when using Optix than with regular CPU raytracing.
Here is the list of Bakers affected by this change :
- Ambient Occlusion From Mesh
- Bent Normals From Mesh
- Thickness From Mesh
If you wish to disable one of the two backends, head over to the main preferences (Edit > Preferences) and to the Bakers settings :
To access the feature, make sure to update to the following drivers :
- Nvidia 10XX and 20XX GPUs : drivers 430.39(compatible with both DXR and Optix)
- Nvidia 9XX and older : drivers 419.67 or 430.39 (drivers 425.31 have an issue with Optix)
Improved Loading Times for OBJ Meshes
In this release we improved our obj file reader to reduce the loading time of 3D Meshes. Loading times have been speed up to 3 times, especially for meshes that don't have UVs and Normals defined.
This performance improvement will affect both the Bakers and the 3D View.
Improved Python Plugin System
With this update we added a lot of new feature to the scripting system :
- Support of Qt : Allows to build custom UI that follows the same style of the rest of the Application. Custom UI can also be integrated much more easily with this new system. (Tkinter is now deprecated.)
- Callback functions : It is now possible to register callback functions. At the moment it only includes opening and saving files as well as the creation of UI elements. Additional callbacks will be added in the future.
- Threading : Plugins can now create threads to do background processing or wait for OS events (such as network connections).
For further details, take a look at the changelog of the API which can be accessed via the Help > Python API Documentation menu entry inside Substance Designer.
We also have a few new nodes available in the default library, some of which are now powered with the new Value processor node :
- Flood Fill To Index
Assigns a unique index to shapes from a Flood Fill node.
In the example below the Pixel Processor node matches the Value Input to the shape and output a mask as a result.
- Non Uniform Directional Warp
Applies a Directional Warp where the intensity and angle are sampled from image inputs.
- Multi Directional Warp
Warps the input image multiple times into various directions.
- Height Extrude
Generates an orthographic 3D rendering of the given Height. The camera view can be controlled with the position gizmo.
- Min / Max Value
Returns the minimum and maximum pixel value from the input image.
This release doesn't support CentOS 6.x anymore. To use the latest version of Substance Designer please upgrade to CentOS 7.x.
(Released May 09, 2019)
- [API] Add 'updatePackages' parameter to the SDPackageMGR.loadUserPackage() method to control if the updaters should be applied or not on load
- [API] Add the ability to disconnect a SDConnection
- [API] Add class SDSBSARExporter to publish a SDPackage
- [API] Add SDHistoryUtils class to manage undoable commands
- [API] Add grayscale input node definition in Substance Compositing Graph (sbs::compositing::input_grayscale)
- [API] Add value input node definition in Substance Compositing Graph (sbs::compositing::input_value)
- [API] Add SDProperty.isFunctionOnly() method
- [API] Add support of custom input parameter on SDSBSCompNode
- [API] Add 'reloadIfModified' parameter to the SDPackageMGR.loadUserPackage() method to control if a package has be reloaded if modified
- [API] Add SDPackageMgr.getPackages() method
- [API] Add possibility to get/add/remove root paths from SDModuleMgr
- [API] Allow getting the pointer of the pixels buffer and the pitch of a SDTexture
- [API] Allow to retrieve the pointer of the MainWindow
- [API] Allow to create custom menus in the main menu
- [API] Allow to create custom DockWidgets in the main window
- [API] Use object names to find menus in toolbars
- [API] Provide system to manage application notifications to the API
- [PythonIntegration] Add default environment variable to look for python plugins
- [PythonIntegration] Add text search and replace to the Python editor
- [PythonIntegration] Instanciate Python plugins at startup
- [PythonIntegration] Take in account PYTHONPATH environment variable
- [PythonIntegration] Allow creating toolbars in graph widgets
- [PythonIntegration] Support Python threads
- [PythonIntegration] Add a Plugin Manager (in the 'Tools' menu)
- [Content] Normal Vector Rotation: add an optional image input to drive the angle
- [Content] New Min/Max filter
- [Content] New "Flood Fill to Index" filter
- [Content] New "Flood Fill Mapper" filter
- [Content] New Atlas Splitter filter
- [Content] Improve Tri Planar filter
- [Content] New Non Uniform Directional Warp filter
- [Content] New Multi Directional Warp
- [Content] New Height Extrude filter
- [Engine] Fxmap: new "Gradation with offset" pattern
- [Engine] Support For Uniform value processing (New Value Processor node)
- [3D View][Bakers] Improve OBJ loader performances
- [3D View] Increase the camera clip plane distances
- [Preferences] Add settings for Bakers
- [Graph] Make invalidation faster by avoiding string comparisons
- [MDL] Support MDL Arrays
- [UI] Engine selection UI improvements
- [IRay] Upgrade to IRay SDK 2018.1.4
- [Dependency Manager] Use "last path" when relocating a resource
- [Cooking] Add support of Boolean Labels in the sbsar
- Integrate Qt 5.12.2
- [Graph] Connections are broken when changing the name of the input
- [Graph] Too many invalidations are triggered when tweaking parameters
- [Graph] "Copy to Clipboard" action don't work if we do the right click on a badge
- [Graph] Moving a frame using Alt is not stored in the .sbs
- [MDL] Color profile is not automatically updated in MDL editor
- [MDL] crash when exporting module that contains a specific setup
- [MDL] Fail to export a MDL Graph that contains a LightProfile or a MBSDF resource
- [UI] Shortcuts are no longer displayed in context menus
- [UI] Floating window becomes dockable after restart
- [Scripting] Cancel option doesn't work in python editor
- [Scripting] "yes to all" option in save menu doesn't work
- [Parameters] drop down list are not displayed correctly after copy
- [Explorer] Relocating resources should open the last relocated path by default
- [Library] The content of the library is always rebuilt when switching from one version to another
- [Library] Imported Bitmaps are invalidated on save
- [IRay] Tangent space is not computed correctly / incorrect normal mapping
- [Function] Crash or fail when creating new graph from selection
- [API] default value of properties is not defined