What is color management, and what are color spaces? A color space is a model that essentially defines the most extreme intensity of colors and luminance that can be used by your software or hardware. The sRGB color space, for instance, has effectively been used for decades to determine how information is displayed on devices such as TVs and computer monitors. More recently, color specialists from different industries have been trying to define new standards, which would provide artists with a wider color space and a simpler workflow between applications. One notable such initiative is the Academy Color Encoding System (ACES). This ongoing work in color management has ultimately resulted in new standards allowing artists even more realism and fidelity in their artwork.

Color management in a 3D context, then, is the practice of ensuring that the same color space is used by all software for each function (display, working, painting, data, and so on). This makes artists’ workflow easier, ensuring that all colors in a project look consistent, no matter which app you’re using.

Let’s dig into the latest release of Painter, to see how color management has improved.

Get Substance 3D Painter

OCIO v2 color management

OCIO v2 color management

Substance 3D Painter now supports the OpenColorIO-based color management system, which allows you to ensure consistent and high-fidelity color appearance across applications throughout your 3D pipeline. Painter supports OCIO version 2; users can test this out with the ACES 1.2 color space.

This update brings a big change to how Painter handles color information. Previously, information on how Painter interpreted your project’s color data was lost once textures were exported – meaning that it was possible, for instance, for your greens or reds to change appearance as your project passed from app to app. Now, this information is stored in a file within your project (‘config.ocio’), which can be modified at any time. As your project moves from Painter to other apps in your workflow, the project itself defines how color information will be interpreted. The result of this is that the precise appearance of your colors will remain identical, no matter which software, engine, or renderer you’re using. This is especially useful for workflows such as those involved in a large-scale studio pipeline; in such cases color information will remain consistent as the project passes from app to app. Note that if an environment variable is set by your operating system (the ‘.ocio’ variable, in this case), this will replace the default config.ocio file shipped in Substance 3D Painter, and your project will use the color settings established by your operating system.

Painter’s color picker now also incorporates color management, in the same way that was previously implemented in the winter 2019 release of Substance 3D Designer.

Note that OCIO color management is not enabled by default. If you want to work with OCIO, you’ll need to enable it manually each time you create a project; you can do this in the new project window (or by heading to ‘project configuration’ for an existing project). Color management is, however, automatically deactivated on every data channel. It’s also possible to manually tweak the color space of your color channel, if you like; if you prefer not to do this, the project’s default color space will be applied.

A turtle asset, textured in Substance 3D Painter.

The same turtle, displayed in Maya.

Conversely, if you prefer to leave OCIO color management disabled, Painter will function with legacy color settings exactly as before.

We’ll be making even more improvements to Painter’s OCIO color management in future updates. This release allows you to maintain color consistency when importing projects into Unreal Engine or Unity thanks to the ACES configurations shipped with Painter. And we’ll be adding dedicated presets for other game engines in future releases, allowing you to take your work into a wider range of apps without any specific configuration of settings. We also plan to add support roles from OCIO configuration, as well as various other improvements. For now, our goal in including OCIO support in this release of Painter is to let artists and studios start integrating Painter’s color management into production pipelines, so that we can get a broader feel of how efficient this new color-managed workflow is, as well as where we still need to make refinements. If you have any feedback on how OCIO is working for you, we’d love to hear it: there are a few ways to get in touch with us; notably, you could post your thoughts on the Substance 3D Discord (on the painter-discussion channel), or in the color management topic of the Adobe Support Community (Substance 3D Painter).

For more information on color management within Substance 3D Painter, take a look at the documentation on this latest release. Also, huge thanks to Christophe Brejon for lending his invaluable color expertise on implementing OCIO in Substance 3D Painter.

Undock your code 2D or 3D view

Undock your 2D or 3D view

Now Painter allows you to undock your 2D or 3D viewport, switching between views in this undocked space if needed. This is a big boost to the user-friendliness of Painter’s UI – one that will be particularly welcomed by artists working with multiple or ultrawide monitors. And, for the color management aficionados, it’s also possible to color manage the undocked viewport independently.

Improvements to auto unwrapping

Improvements to auto unwrapping

This release brings an improvement to Painter’s auto UV unwrapping function, allowing you to avoid elongated islands. Previously, meshes that included shapes such as bands or straps had a tendency to auto-unwrap into extremely long islands; now, by checking the ‘Avoid elongated UV islands’ option, any such sections will be segmented, to avoid creating long islands, and provide much cleaner and optimized packing.

In the image above, we see how the cable (in pink) creates an elongated island; below, we see how the cable section of the cable drum mesh appears when Painter’s new algorithm is applied, dividing the cable into segments and preventing any elongated islands.

Note that this option is not enabled by default. Also note that enabling this option can cause the unwrapping process to take around 15-20% longer.

New content

New content

This latest release of Painter brings some outstanding new content, created by a couple of guest artists. First up, Emiel Sleegers, Senior 3D Environment Artist at FastTrack Studio, has created 11 new grunge maps, allowing you to add fluff, peeling paint, cobwebs, and more fun stuff to your projects.

10 of the 11 new grunge maps included in this release of Painter (above).


Pocket tool/decal

But wait – there’s more! For this release, Material Artist and all-round Substance expert Käy Vriend has also created 6 new resources, comprising brushes, materials, and tools. These new resources include:

– Inflate/Shrinkwrap generator
– Advanced Zipper tool
– Glitter tool
– Pocket tool/decal
– Scar tool/decal
– Tightening cord tool


Advanced Zipper tool


Inflate/Shrinkwrap filter

Run JavaScript API functions in Python

Run JavaScript API functions in Python

A number of legacy JavaScript functions have yet to be ported to Painter’s newer Python architecture – and some users have missed those functions. This latest release of Painter offers a solution: a function in the Python API has been added allowing users to call the JavaScript API. This allows you to run some of the legacy JavaScript functions; you can, for instance, carry out baking, controlling parameters with scripting, or use scripting to establish the structure of layers, effects, and masks.

All visuals for this article were created by Casimir Perez.