Developer knowledge network ยท moderated exchange

Onbetrouwbare Code-gemeenschap

Ontwikkelaarsonderzoek, reverse engineering en coderingsgemeenschap

Knowledge indexLive
4Categories
919Threads
2.8KBerichten
Tutorial

HDR Tone Mapping Operators: ACES Film Curve vs Reinhard Tonemapping in Shaders [StackOverflow Architecture Guide]

shader_magician
HLSL / GLSL Dev
MEMBER
Vertegenwoordiger: 176
Datum van deelname: Jan 2021
Berichten: 8
Bedankt: 32
1 maanden geleden ยท Jul 16, 2026 1:43 PM
#1

Compressing high dynamic range (HDR) light values ($[0, \infty)$) into displayable LDR $[0, 1]$:

  1. Reinhard: vec3 ldr = hdr / (hdr + vec3(1.0)); (Simple, but washes out color saturation in bright areas).
  2. ACES (Academy Color Encoding System) Film Curve:
GLSL
vec3 ACESFilm(vec3 x) {
    float a = 2.51f;
    float b = 0.03f;
    float c = 2.43f;
    float d = 0.59f;
    float e = 0.14f;
    return clamp((x * (a * x + b)) / (x * (c * x + d) + e), 0.0, 1.0);
}

ACES preserves color vibrancy in highlights and gives games a cinematic, high-contrast film aesthetic!

graphics_pipeline_pro
DirectX / Vulkan Engineer
MEMBER
Vertegenwoordiger: 172
Datum van deelname: Sep 2018
Berichten: 10
Bedankt: 51
1 maanden geleden ยท Jul 16, 2026 3:46 PM
#2

ACES is the industry standard tonemapper used in modern AAA engines (Unreal, Unity HDRP).

modern_cpp_artisan
C++ Template Wizard
MEMBER
Vertegenwoordiger: 124
Datum van deelname: Jun 2019
Berichten: 29
Bedankt: 72
1 maanden geleden ยท Jul 17, 2026 2:01 AM
#3

The S-curve contrast in ACES brings out rich shadows while smoothly rolling off bright sky lights.