ACES and Substance Painter

Perfect ! That’s exactly the information I needed.

I definitely tried the setup from your screenshot and since it was not working as expected, this is where I tried different things that did not make much sense. I naively thought that Substance log curve was standard. :wink:

Your explanation makes perfect sense (as usual !) and is much appreciated !
I’ll let you know how this goes ! Many many thanks !


Certainly not any standard log curve I know. The toe begins well above mid grey.

Thank you @jedsmith ! it worked like a charm ! I used your nuke setup and replaced the Log2Lin node by an OCIOFileTransform reading your spi1d LUT. It is the first time I was able to really match an ACES render to the ACES viewport of Substance Painter (no highlights clipping). Ideally we would get the log curve from Allegorithmic to be more accurate. I have asked them. Thanks !

OCIO support is imminent AFAIK :slight_smile:

Substance Designer now supports OCIO indeed. But I have been told yesterday there was no eta for Substance Painter… Let’s juts hope then. :wink:

Here’s what the Allego’s documentation say :

  • Log : This results in mapping that is even more gradual than Reinhard , and contrast that is low. It causes the resolution of the high luminance components to become high, and the strongest reproduction of the luminance variations in the bright portions.
  • LogLum : Type for implementing the tone map of the logarithmic space with the luminance as the reference and keeping the original saturation (vividness: RGB ratio). This maps only the luminance information to the logarithmic space and then reproduces the original saturation. The saturation in the HDR space is also kept after tone mapping.

Not much of an help. But we have found out that this Log Function actually comes from Yebis. So I have written to them and they are investigating the matter.

Let’s wait and see :wink:

1 Like

Thanks for asking around to see if anyone will give us more information! :slight_smile:

I’m curious to hear if they reveal any secrets.

Unfortunately no secret revealed… @jedsmith Here is the answer I got :

One of the tone map curves provided by YEBIS, which is a YEBIS original function, is based on a logarithmic function. This is the most gentle curve in the YEBIS tone map, and has a low contrast. Therefore, it is easy to express a wide range of brightness. However, it’s not a very good curve from an artwork perspective.

That’s it ! Not much of an help :stuck_out_tongue:

1 Like

Quite an understatement! :slight_smile:

Thanks to your instructions i managed to build the LUT on my side too .
Will @jedsmith and @ChrisBrejon allow me to share my result on my Gumroad (for free so i’m not selling it) to help people work with SP while waiting for OCIO support ?


Yeah for sure! If it helps people I’m all for it. Post a link when you have it up.

Just out of curiosity, is your LUT for a view transform that is not in the repository? Or is it because you have a different working gamut than ACEScg? Just curious what your use-case is.

1 Like

Thanks !
First cause i wanted to just know how to do it , then to have the choice between working with sRGB or ACEScg primaries. (sRGB included a converting step after export but allow to keep the same workflow/tools in SP)

Good idea @MrLixm ! We did some LUTs for the studio based on a linear - sRGB working space, with a variation using the log tonemapper. I think it would be of great interest to list them all and have them available at one place for free.
Let me know if I can help,

1 Like

Here is the Instructions and the ReadMe that are going to be included with the LUTs. The work is shared under CC BY-SA license.(details in README).
Credits are included in the README.

LUT supplied are:

ODT: rec709, sRGB, P3D60, P3D65
WorkingSpace: Linear - sRGB, ACEScg

Don’t know what kind of other ODT are often used and could be added.

README.txt (1.0 KB)

Tell me if you notice anything wrong.

1 Like

One minor thing you could mention in the instructions: when you change the tone mapping function from linear to log, make sure to set the mapping factor from the default (32) to the maximum (63.99). This is what the spi1d curve was sampled from.

Looks good otherwise! Thanks for putting this together @MrLixm

1 Like

So here it is :
Unfortunately it seems that i can’t remove the “pay what you want feature” so it mean folks can pay the asset and I will receive money (beh who want money nowadays ?)
We can say that if there is any donation they will be donated to colour-science open collective ?
If this is too problematic I can remove the product and we find an other way to share it online.

1 Like

Yes for open collective : That’s a good thing ! Otherwise I could also upload them on my website. @MrLixm

It will be cool to have them shared on your website also !

1 Like

Thanks a lot @MrLixm! :slight_smile:

1 Like

This is amazing, thanks Jed!

I had a question: In @ChrisBrejon’s screenshots the color space is

in: Utility-Linear-sRGB
out: Output.

However, in the EXR LUT files in @jedsmith’s github and @MrLixm’s Gumroad the color space appears to be

in: ACEScg
out: Output.

I’m wondering which one is correct? I’m thinking that since Substance works in sRGB primaries/gamut linear that in: Utility-Linear-sRGB would be right?


The LUT we published offer different working space options. Traditional sRGB that will let artist works as before and ACEScg that require some conversion work for every color input in Substance.
If you choose sRGB texture will have to be converted to ACEScg at a later time.
If you choose ACEScg the exported texture will be in ACESCg but this implies that for example, HDRI need to be converted to ACEScg, the same goes for any color that is not color picked.