tonemapper icon indicating copy to clipboard operation
tonemapper copied to clipboard

Tiny script to compare tonemapping operators

  • tonemapper

A python script to debug tonemapping operators. It plots the following filmic tonemapper curves with a fixed set of parameters:

  1. [[http://32ipi028l5q82yhj72224m8j.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/GdcVdrLottes.pdf][Timothy Lottes Generic Filmic]] with [[https://bartwronski.com/2016/09/01/dynamic-range-and-evs/comment-page-1/][Fixes from Bart Wronski]]
  2. [[http://filmicworlds.com/blog/filmic-tonemapping-with-piecewise-power-curves/][John Hable Piecewise Filmic]]
  3. [[http://filmicgames.com/archives/75][John Hable "Uncharted" Filmic]]
  4. [[https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/][Krzysztof Narkowicz ACES approximation]]

** Logarithmic scale with HDR max = 16 [[file:tonemapper_log.png]]

** Linear scale with HDR max = 2 [[file:tonemapper_linear.png]]

The settings for the Generic tonemapper are:

  • Contrast = 1.2
  • Shoulder = 0.97
  • Mid in = 0.3
  • Mid out = 0.18

The settings for the Piecewise tonemapper are:

  • x0, y0 = 0.25
  • x1, y1 = 0.6
  • overshoot x = HDR max * 4
  • overshoot y = 1.5

Both the Uncharted and ACES curve have been normalized to HDR max.

Linear curves are included for reference. Clamped to 1 and normalized to [0, HDR max], respectively.