Skip to main content

Hejl-Burgess-Dawson (HBD)

The Hejl-Burgess-Dawson curve is a simple, parameter-free filmic operator developed by Jim Hejl and Richard Burgess-Dawson during the Half-Life 2 / Source engine era. It produces a recognizable look — high contrast, warm-ish shadows, a touch of blue in the darkest areas — with almost no shader cost.

Hejl-Burgess-Dawson

How it works

HBD is unique in that its formula outputs sRGB-encoded values directly (it has gamma baked in). The plugin linearizes the output with pow(x, 2.2) to stay consistent with the rest of the pipeline:

float3 ApplyHBD(float3 color)
{
float3 x = max(0.0, color - 0.004);
float3 srgb = (x * (6.2 * x + 0.5)) / (x * (6.2 * x + 1.7) + 0.06);
return pow(srgb, 2.2); // linearize — HBD outputs sRGB-encoded
}

The - 0.004 offset lifts the black floor slightly, which is part of what gives HBD its characteristic "dirty" shadows.

Settings

None. HBD has no tunable parameters beyond the global Exposure Compensation shared by all operators.

When to use HBD

  • Stylized or retro projects aiming for a mid-2000s look
  • Fast prototyping — zero tuning required
  • When you specifically want the Source/HL2 aesthetic
Pipeline note

HBD's formula produces sRGB-encoded output by design. The plugin applies pow(x, 2.2) at the end to ensure it remains consistent with the other operators in a linear pipeline. Do not apply additional gamma yourself.

Reference

Valve / Source engine, ~2004–2010. Referenced by John Hable in his GDC 2010 HDR talk.