Tone Mapping Conflict Matrix: DTM vs HGIG vs Windows Calibration
High Dynamic Range (HDR) gaming requires the graphics render pipeline and the physical display panel to agree on luminance boundaries: peak white nit levels, paper white UI brightness, and black floor floorboards. When the game engine, Windows OS, and display panel firmware perform simultaneous, unsynchronized tone mapping, players experience washed-out colors, severe highlight blowout (clipping), or crushed shadow detail (black crush).
| Tone Mapping Mode | Display Processing | Game Engine Output | Primary Failure / Symptom |
|---|---|---|---|
| Double Tone Mapping (DTM) | Display re-compresses curve | Already compressed | Midtones unnaturally boosted; blown-out sun and sky |
| Hard Clip (No Mapping) | Abruptly truncates over peak | Unbounded dynamic range | Clouds and explosions lose all textural detail |
| HGIG (Target Standard) | Bypasses display mapping | Clips strictly at panel capability | Accurate authorial intent, pristine specular highlights |
| Static Tone Mapping | Follows static curve | Disregards true peak nits | Crushed shadow detail; dark corridors pitch black |
Step 1: Windows HDR Calibration App Setup
Microsoft Windows requires display profile ICC/EDID metadata generation through the official Windows HDR Calibration tool (available in Microsoft Store) to inform games of your hardware nit limits.
- Enable HDR in Windows Display Settings (shortcut: Win + Alt + B).
- Set display OSD tone mapping mode to HGIG or Tone Mapping: Off (disables dynamic tone mapping algorithms on LG, Samsung, or ASUS displays).
- Open Windows HDR Calibration and proceed through the test patterns:
- Minimum Luminance: Move slider left until the test pattern square becomes completely black (0.0000 nits on OLED; ~0.05-0.1 nits on Mini-LED).
- Maximum Luminance: Move slider right until the test grid disappears into pure white (matches true peak nits, e.g., 800 nits for WOLED, 1000 nits for QD-OLED).
- Maximum Full-Frame Luminance: Match full-screen white limit (typically 200-250 nits for OLED panels).
- Color Saturation: Leave at 0 (or default) to prevent oversaturating sRGB UI elements.
- Save the generated color profile and verify it is set as default in Color Management.
Step 2: In-Game HDR Luminance Slider Mapping
Most modern game engines (Unreal Engine 5, Frostbite, Decima) feature 3 specific HDR sliders. Align them with your physical panel hardware:
Slider Configuration Formula
- Peak Brightness (Nits): Set exactly to panel 10% window peak (e.g., 800, 1000, 1500). Never exceed physical panel limits or highlights will clip into flat white blocks.
- Paper White / UI Brightness: Set between 120 and 200 nits for dark room environments, or 250 nits for bright environments. Exceeding 250 nits induces eye strain on text and HUD icons.
- Midpoint / Exposure Gamma: Leave at default 1.0 or 2.2 unless the game engine demonstrates a raised black floor (e.g., grey fog in space or dark caves).
Step 3: Resolving Raised Black Floors via ReShade AutoHDR / Lilium Shaders
When games possess broken native HDR implementation that encodes pure black as elevated grey (common in titles utilizing SDR-to-HDR wrappers):
- Install ReShade with full addon support.
- Load Lilium HDR Shaders suite.
- Activate
Lilium HDR Black Floor Fix:- Set Black Floor Level offset to -0.001 to pull elevated luminance down to true 0.0 nits.
- Use
Lilium HDR Analysisheatmap overlay to confirm no specular highlights are prematurely clipped below 1000 nits.