In different sources I see ACES tonemapping, but I see one of two possible sets of formulas:

  1. https://www.shadertoy.com/view/XsGfWV this one
  2. https://www.shadertoy.com/view/tdffDl or this

I compared them and the first one looks better, it can transform very bright monochromatic light to white.

But the question is: why do they both are called ACES and what is the "true" ACES? It seems like number 2 is used alot though number 1 looks better.


1 Answer 1


Second link that you've presented is using exactly the same formula as one used in Krzysztof's Narkowicz blog (and used in UE4) - https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ - his blog provide source, which is official ACES github.

At the same time, source provide in first shadertoy code, points to official ACES website - http://www.oscars.org/science-technology/sci-tech-projects/aces - in which you can find link to the official ACES github (https://github.com/ampas/aces-dev) which is the same as provided by Krzysztof Narkowicz.

In conclusion: It looks like both code is using official ACES formula, but different versions. As you can see in ACES github, there are version up to 1.3. Therefore, two shadertoy codes that you've presented are probably using different versions.

Edit: Read Nathan Reed's comment below. Indeed I forgot that Krzysztof Narkowicz's version is approximation.

  • 4
    $\begingroup$ The #1 shadertoy also has a couple of matrix transforms in it, in addition to a nonlinear curve, which makes me think that maybe it's applying a more full version of the ACES process including color space transforms, while Krzysztof Narkowicz's version is a luminance-only approximation (as he states in his blog post) that discards the color transforms for simplicity and speed. $\endgroup$ Sep 20, 2021 at 20:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.