Skip to main content

AgX

AgX is a tone mapper designed by Troy Sobotka and implemented for real-time use by Benjamin Wrensch (Missing Deadlines). It approaches tone mapping from a rigorous color-science perspective, producing results that feel natural and photographic — especially in high-contrast scenes where other operators tend to clip or hue-shift highlights.

AgX Default look on a day scene

How it works

AgX processes scene-referred linear HDR through a pipeline modeled on photographic film response:

  1. Input matrix — rotates from scene-linear into a working color space that de-correlates the channels.
  2. log₂ compression — maps the wide HDR range to a workable log domain, clamped to [-12.47, 4.03] EV.
  3. Normalization — maps the log range to [0, 1].
  4. Sigmoid curve — a 6th-order polynomial approximation that smoothly rolls off both shadows and highlights.
  5. ASC-CDL look — applies the selected look via slope/power/saturation.
  6. Inverse input matrix — rotates back to display space.
  7. EOTFpow(x, 2.2) to convert to display-referred.

Look presets

The AgX Look setting selects one of three creative intents:

Default

A neutral, reference look. No color grading applied — closest to a straight film scan.

ParameterValue
Slope(1.0, 1.0, 1.0)
Power1.0
Saturation1.0

AgX Default look

Golden

Warm, autumnal tones. Reduced blue channel and slightly soft contrast — reminiscent of golden-hour photography.

ParameterValue
Slope(1.0, 0.9, 0.5)
Power0.8
Saturation0.8

AgX Golden look

Punchy

High-impact look with boosted contrast and saturation. Good for stylized, vibrant art directions.

ParameterValue
Slope(1.0, 1.0, 1.0)
Power1.35
Saturation1.4

AgX Punchy look

Settings reference

SettingTypeDescription
AgX LookEnumDefault / Golden / Punchy

When to use AgX

  • Realistic or photorealistic projects
  • Scenes with very bright lights, emissive materials, or direct sun
  • When ACES causes unwanted hue shifts or hard clipping in highlights
Reference

AgX is based on the minimal implementation by Benjamin Wrensch: iolite-engine.com/blog_posts/minimal_agx_implementation