Version 2020.1 (10.1.0)




Substance Designer 2020.1 includes a new shortcut editor, a MaterialX plugin and lots of new improvements for color management with Adobe Color Engine and new bakers functionalities.

Release date: April 10, 2020

Starting with this release, the application version number will change its format. What should have been 2020.1 now becomes 10.1.0.

Major Features

New Shortcut Editor for Node Creation

In this version we introduce a new shortcut editor which allows to define keyboard shortcuts to speed up the creation of nodes in the different graph modes. 

The new shortcut editor is accessible in the main preferences via Edit > Preferences > Shortcuts. By default every shortcut fields is empty.

  • Shortcuts for each type of graph
    It is possible to define a shortcut for each type of graph available in Substance Designer, from regular compositing graph to more advanced such as functions and MDL.


  • Assign shortcuts both for atomic nodes and custom filters
    By default the interface shows the atomic nodes for each type of graph. Using the search field allows to refine the list but also make custom library filters and nodes accessible:


  • Creating a new shortcut
    To create a new shortcut for a specific node simply click in the text field next to its name and type the requested keys on the keyboard. To clear a shortcut use the cross button.


  • Managing shortcuts conflicts
    Use the tooltip on the warning icon to learn more about a conflict. It mentions if a key conflicts with an existing one or if it is already used by the application for an other purpose.



  • Search for shortcuts
    In case there are too many shortcuts to track or if a node is not visible by default, use the search system to isolate them:

New MaterialX Plugin (Beta)

During SIGGRAPH 2019 we demonstrated a MaterialX plugin for Substance Designer. MaterialX is a format developed by Industrial Light & Magic (ILM) that allows artists to create materials that can then be used in a wide variety of platforms and many usages (such as movies, TV shows, games, VR experiences, and manufacturing). This new plugin, which is now available in beta, allows to create MaterialX materials to be used in other compatible DCC application. Take a look at our recent article about MaterialX to know more about the process and goals behind this new plugin.

This new plugin allows to:

  • Develop procedural shaders and textures in parallel.

  • Create advanced shaders for Substance Painter with features such as detail maps and procedural masks changeable at runtime.

  • Match shader features from a game engine or VFX pipeline in the Substance Designer and Substance Painter viewport.

To get the plugin, simply heads up over Substance Share to download it.

New Integration of Adobe Color Engine (ACE)

In addition to OpenColorIO it is now possible to use Adobe Color Engine (ACE) to support ICC profiles for color management. This means you can now import and export calibrated images to match other software such as Photoshop and Illustrator.

  • Enabling Adobe Color Engine
    Use the project settings to define which color management system to use:


  • Changing screen profile
    When previewing images via the 2D or 3D view, use the dropdown to specify which profile to use:


  • ACES for Legacy Color Management
    The ACES tonemapped output transform is now available with the Legacy color management mode.

Improved Bakers

We refined some of our bakers with two main changes:

  • Improved sampling
    The Ambient Occlusion, Thickness and Curvature baker now use a new sampling method which greatly improves the quality of the baked results. It produces a more appealing noise and more stable results, without the need to increase the sample count. The image below shows the previous sampling method at the top and the new method at the bottom with from left to right 4, 8 and 16 samples (all renders were done with anti-aliasing set to 4x4 subsampling).


  • New normalization setting
    The Thickness and Heightmap bakers have a new normalization parameter which lets you bake raw values to texture instead of clamped values in the range 0-1. This is useful with a height map to know the raw distances between a low-poly and high-poly mesh for example. The divisor value will correspond exactly to the displacement intensity to setup on the low-poly mesh to match the high-poly mesh silhouette. In order to correctly interpret the height map we have also exposed a new “Scalar Zero Value” parameter to define the pixel value corresponding to 0. Additionally, the manual factor allows to fix potential seam issues on UDIM meshes caused by a per UV-Tile normalization.

Improved 3D View

The 3D view received various quality of life improvements which should make daily work more pleasant:

  • Parameters synchronization between renderers
    Shader parameters are now synchronized between OpenGl and Iray which make jumping between them much easier.

  • Display texture input preview and add disable parameter
    Shader input parameters now display a preview of their input: it can be a uniform color parameter, a graph node or a bitmap. It is also possible to uncheck a parameter to temporarily disable it.
     


  • Environment map preview in settings
    When going to 3D View > Environment > Edit there is now a preview of the environment map used to light the scene.


  • New Unlit shader
    A new shader named "unlit" has been included by default. It doesn't react to any lighting and instead can be used to display a single texture in the viewport over a mesh. This is useful to look at baked textures for example.


  • Improved performances on High DPI screens with viewport downscaling
    Similar to Substance Painter, there is now a new parameter named Viewport Scaling in the main preferences that detects that a screen uses HDPI scaling (such as Retina screens on MacOS) and will automatically divide the viewport resolution by 2. This behavior avoids drawing the viewport at too high resolutions and improves general performances. 
    The current setting value are:
    • None: no viewport scaling.
    • Auto (default): if the application is on a HDPI screen the viewport resolution will be divided by two.

New Content

This release also includes some new or improved nodes:

  • Improved PBR Render node
    Already introduced in a previous version, this node has been greatly improved. It now offers camera controls, new shapes (such as a plane and a cylinder), post-effects (Depth of Field, Bloom/Glare, Vignette, etc) and new material types (like Clear-Coat and Anisotropy) as well as support for materials with opacity. 
    For more information, see the dedicated documentation page.


  • New PBR Render Mapping Node
    As an extension for PBR Render, you can use this new node to build composite map-channel previews.
    For more information, see the dedicated documentation page.


  • New FXAA filter
    The new filter implement the Fast approximate anti-aliasing (FXAA) algorithm which is an anti-aliasing method. It can be used on regular texture to smooth out jagged lines or edges.
    For more information, see the dedicated documentation page.


  • New Hald CLUT filter
    This filter allows to adjust the tone and color of an image with an input Look Up Table (LUT). It uses the Hald CLUT format, to create one simply start off from an identity LUT available here.
    For more information, see the dedicated documentation page.


Release Notes

2020.1.3

(Released June 11, 2020)

Added:

  • [Content] Expose 'Matte Color' parameter in Safe Transform Grayscale node
  • [Content] PBR Render: Add a custom Background Input option
  • [Content] Panorama Light nodes: new option to sample the color from the background image
  • [Parameters] Hide parameters with 'not-supported' flag from the Expose Parameters window list

Fixed:

  • [3D View] Crash when switching custom meshes in a specific case
  • [3D View] Normal format is always DirectX on startup
  • [Content] 3D Worley noise: render artefact when using a high grid size value
  • [Content] Dissolve node blending is incorrect
  • [Content] PBR Render: remove Cooker warning
  • [Content] PBR Render: result contains negative colors in some cases
  • [Cooker] Cache injection issue for multi-output instance nodes
  • [Explorer] Crash when closing a Package that contains a displayed MDL Graph
  • [Graph] 2 pass cooking: node type change does not trigger a recook
  • [Graph] Crash when deleting inputs while using its connection
  • [Graph] Link endpoints can be moved to empty space
  • [MDL] Crash when cancelling MDL export from MaterialX graph
  • [MDL] Error when cancelling export to MDLE
  • [Presets] Crash in Presets tab after changing type of parameter included in preset
  • [Resources] Material list is empty in graph contextual menu for meshes linked as non-UDIM


2020.1.2

(Released April 27, 2020)

Added:

  • [Content] Add Alchemist Filter template
  • [Content] PBR Render: add parameters to control the diffuse/specular shadows intensities
  • [Content] Shape Light nodes: add camera position parameter
  • [News] Group 'Arrow' style is broken the first time the window is displayed
  • [Bakers] Add the Z shortcut to the 2D View to see the image at 1:1
  • [Project] Hide $(PROJECT_DIR) alias from the list
  • [Explorer] Do not create Custom Resource for resources that are not a file on disk

Fixed:

  • [Player] Report missing aliases when loading SBS packages
  • [Player] Display the Random Seed value in decimal base
  • [Player] Bundle all environment maps included with Substance Designer
  • [Player] Crash on exit in macOS High Sierra
  • [Player] Packages using the sbs:// cannot be loaded
  • [Content] 3D Worley noise: render artefact when using a high grid size value
  • [Content] 'greaterThanZero' input in 'Wave' node is not used
  • [Content] Plane Light: World space position mode does not work
  • [Content] Sphere Light: internal light position does not work correctly
  • [Bakers] Crash when baking with the baking window while a 'Refresh all baked maps' is running
  • [Bakers] Baking fail on Optix for AO from Mesh using Low as High with a Normal map
  • [Bakers] The resolution of the preview of the UVTiles does not match the size of screen
  • [3D View] Assigned bitmap is overridden when loading a MDL if default value is not a texture2d
  • [3D View] Materials Properties widgets change after a property is reset
  • [3D View] Normal Format global preference no longer works
  • [MatX] Library: MaterialX Graph category does not display all the available nodes
  • [MatX] The contextual menu of a Custom Graph can contain empty subfolders in the 'Add Node' folder
  • [SBSAR] Primary Input is reverted to the first input in the list
  • [Library] Only first graph is included from SBSAR with multiple graphs
  • [CustomGraph] Nodes, that are not part of the current graph type, are created automatically in some cases
  • [Iray] Box projection 'Depth' parameter does not work correctly
  • [Preferences] Improve layout in the project settings
  • [Parameters] Crash when moving a position widget after having deleted a parameter
  • [UI] Crash when changing usages hierarchy in outputs node
  • [Graph] Crash while using a Selection Box on comment and a badged node

2020.1.1

(Released April 10, 2020)

Fixed:

  • [3D View] Memory usage is too high when working on compositing graph
  • [Content] Unexpected shapes in non-square output of 'Polygon' nodes
  • [Content] PBR Render: Orthographic camera doesn't work correctly when using non square resolution
  • [Content] PBR Render: Swirly bokeh increases the image border brightness
  • [Color Management] Color picker in New Bitmap dialog is not color managed.
  • [Color Management] Color pickers in paint and vector tools in the 2d view are not color managed.

2020.1.0

(Released April 09, 2020)

Added:

  • [Shortcuts] Shortcuts manager for node creation
  • [Content] New PBR Render Node
  • [Content] New FXAA filter
  • [Content] New Hald CLUT filter
  • [Content] Expose filtering in 'Crop' nodes
  • [3D View] Improve Shader parameters / texture assignment workflow
  • [3D View] New Unlit shader
  • [3D View] Add a "Scalar Zero Value" to the displacement shaders
  • [3D View] Add an option to downscale viewport resolution when High DPI is enabled
  • [3D View] GLSLFX: Allow to set gui information on sampler (default, min, max, guiMin, guiMax, guiStep, guiWidget, guiName, guiGroup)
  • [3D View] Add 'Load State With Mesh...' option in the Scene menu
  • [3D View] Add the ACES tonemapped output transform in Legacy color management mode
  • [Bakers] New Sampling method in AO, Curvature, Bent Normal, Thickness bakers
  • [Bakers] New Normalization options in Height and Thickness bakers
  • [Color Management] Integrate Adobe ACE (Adobe Color Engine)
  • [Color Management] Add options to set default behavior when ICC profile is missing
  • [Parameters] Make sliders incrementing consistent with Substance Painter
  • [Packaging] Bundle as many Qt dlls as we can for Python scripts
  • [Project] Disable settings for read-only project files and communicate that state clearly
  • [Preferences] Hide specific unclear settings related to responsiveness and computation periods
  • [UI] Rename Pow2 -> 2Pow
  • [Properties] Optimize compositing graph properties display
  • [AXF] Update to AXF SDK 1.7.1

Fixed:

  • [3D View] Ambient Light parameters are not visible eventhough it is enabled
  • [3D View] glslfx: Color widget is always a vec3 without alpha
  • [3D View] Environment map set from a resource is not saved in the scene resource
  • [3D View] Iray: Ambient light is converted to a point light at scene origin
  • [3D View] glslfx: Color widget is always a vec3 without alpha
  • [Parameters] Instance Package URL is not correct in the attribute group
  • [Parameters] Crash when exposing parameters
  • [Parameters] Icons are not correctly aligned in parameters of Curve nodes
  • [Parameters] 'Text' node string is only displayed in 'Preview' mode when exposed
  • [Parameters] Crash when renaming an input parameter used in 'Visible If' statement
  • [Parameters] Crash when deleting a Levels node which has a function set in any of its parameters
  • [UI] Warning icon in input parameters list is placed on top on an existing button
  • [UI] Warnings are not cleared on correct input parameter item in a specific case
  • [UI] Prevent the "Is mesh UDIM ?" popup to appear when the mesh UVs are strictly in the [0,1] tile
  • [UI] Presets drop down lists can be scrolled with mouse wheel with a simple mouse hover
  • [UI] 'Output(s) computation' option in graph attributes is incorrectly named
  • [MDL] Crash when placing a SBS graph resource into a MDL graph
  • [MDL] SBS node with image input does not work correctly
  • [MDL] Incorrect texture bindings & usage names
  • [Graph] Input value group and usage are ignored in 'Material' Link Creation Mode
  • [Graph] Input Values use the default value instead of input data for Booleans
  • [Bakers] Incorrect normals in World Space Normals baker using a tangent Normal map in specific cases
  • [Bakers] Excessive memory usage when baking with the Preview window opened
  • [Presets] corrupted preset make rendering crash
  • [Presets] Boolean parameter from old SBS is not impacted by preset
  • [Library] Resources from the first open package are listed in the node creation floating menu
  • [Publish] Publishing to SBSAR returns Error code 13 in SBSCooker on macOS
  • [Publish] Deprecated argument warning in SBSCooker when publishing to SBSAR
  • [API] Can't get the Metadata from a package that comes from a .sbsar file
  • [Export] In Legacy mode, colorspace option reverts back to defaults for specific outputs
  • [2D View] Copy to clipboard does not take the Color Management state into account
  • [Unix] Designer ignores system signals
  • [Library] Some filters in the library don't work properly because of translated tags
  • [Cooker] Square Root of negative numbers should return 0 instead of NaN
  • [2D View] Red and blue channels are swapped after undoing the first paint stroke
  • [Console] Too many warning message in the console "QPixmap::scaled: Pixmap is a null pixmap"
  • [Content] "Shape Glow": cooking warning
  • [Dependencies] Assigning a graph located in a different package to a mesh does not create dependencies
  • [Iray] Material properties becomes inactive after switching geometry

Added:

  • [Shortcuts] Shortcuts manager for node creation
  • [Content] New PBR Render Node
  • [Content] New FXAA filter
  • [Content] New Hald CLUT filter
  • [Content] Expose filtering in 'Crop' nodes
  • [3D View] Improve Shader parameters / texture assignment workflow
  • [3D View] New Unlit shader
  • [3D View] Add a "Scalar Zero Value" to the displacement shaders
  • [3D View] Add an option to downscale viewport resolution when High DPI is enabled
  • [3D View] GLSLFX: Allow to set gui information on sampler (default, min, max, guiMin, guiMax, guiStep, guiWidget, guiName, guiGroup)
  • [3D View] Add 'Load State With Mesh...' option in the Scene menu
  • [3D View] Add the ACES tonemapped output transform in Legacy color management mode
  • [Bakers] New Sampling method in AO, Curvature, Bent Normal, Thickness bakers
  • [Bakers] New Normalization options in Height and Thickness bakers
  • [Color Management] Integrate Adobe ACE (Adobe Color Engine)
  • [Color Management] Add options to set default behavior when ICC profile is missing
  • [Parameters] Make sliders incrementing consistent with Substance Painter
  • [Packaging] Bundle as many Qt dlls as we can for Python scripts
  • [Project] Disable settings for read-only project files and communicate that state clearly
  • [Preferences] Hide specific unclear settings related to responsiveness and computation periods
  • [UI] Rename Pow2 -> 2Pow
  • [Properties] Optimize compositing graph properties display
  • [AXF] Update to AXF SDK 1.7.1