Actually a filter to convert textures to ACEScg and a lut to convert ACEScg render view to ACES sRGB (in my lut release).
I also made another filter called PBR_SmartFit which helps on the inverse RRT conversion so values above 0.81 are not lost.
The filters are pretty straight forward with some settings exposed for linear or sRGB gamma input/output since Substance Designer unlike Painter defaults to sRGB. Substance Designer also lacks lut support so no option to render in ACES with Substance Designer.
*The ACEScg filter is based on the work of Stephen Hill (@self_shadow)
There’s only a gist when using “Output - sRGB” as IDT which I will now explain.
If you followed this thread a common issue when using “Output - sRGB” as IDT is HDR values. Source pure white 1.0 will remap to value of about 16.29, and target pure white corresponds now to value 0.81 in source losing 1/5 of texture information (textures should be in the 0-1 range, or less for PBR). A common recommendation and a standard in other painting programs is to use “Utility - sRGB - Texture” as IDT, this won’t apply an inverse RRT and hence after the forward RRT our images will look darker than normal. Depending on how you author your maps working in “Utility - sRGB - Texture” is fine, like when you create your albedo maps from scratch using ACES without relying on photographs or other media so it’s also available as an option in the filters. But nowadays in look development it’s not uncommon to mix textures from photographs, other non-ACES managed painting applications, or using library materials authored in sRGB.
This force us to stick to “Output - sRGB” for faithful tonal and color reproduction. To deal with the HDR values I created an special setting in PBR_SmartFit to keep all information within PBR legal range.
PBR_SmartFit is a filter to convert your source albedo maps to PBR legal range (0.0134-0.871 linear float as per Substance guidelines) in the smartest way, retaining source colorimetry, perceptual middle gray and full range details, unlike the internal “PBR Safe Albedo Color” which performs a range clamp on the out-of-PBR values. It tries to be faithful to source while making it PBR compliant. As I explained above, there’s an special option called “PBR for ACES”, when set to “Output - sRGB” what it does is create a special PBR range adapted to the inverse RRT which in turn maps said values to target PBR range while retaining source colorimetry, perceptual middle gray and full range details.
Following some comparisons rendering with Arnold for Maya using syntheticChart.01_ODT.Academy.sRGB_100nits_dim
Here I made a test asset to evaluate different materials under an ACES workflow. The default for Substance Painter is sRGB color space without any tonemapper. Following is ACESFilm tonemapper which like Brian Leleux ACES lut render the image too dark due to the lack of inverse RRT for the textures. Raising the gamma can patch this side effect but the premise is wrong to start with; bad environment exposure, contrasty textures, wrong light interaction -reflections, color bleed-… The last one is using ACEScg textures with the “ACESFilm - ACEScg” lut. Now environment has proper exposure at default gamma, color bleeding is more pronounced and overall light interaction is more correct.
The image below is after conversion of the HDRI assumed to be sRGB into ACEScg space. We normally don’t know what primaries the HDRIs were saved in because it is not normally specified but visual analysis can gives us a hint. Some use sRGB, others AdobeRGB and the ideal ones RAW, for which you should use rawtoaces for conversion of sensor spectral data.
More examples with different materials and environments.
Free download with instructions and more images on my ArtStation post.