Add a new tone mapper (#9614)
The new tone mapper, dubbed "GT7" in the code, is based on the Gran Turismo 7 tone mapper, as described in the SIGGRAPH 2025 presentation called "Driving Toward Reality: Physically Based Tone Mapping and Perceptual Fidelity in Gran Turismo 7". This tone mapper exhibits fewer hue skews than the other tone mappers, at the exception of PBR Neutral. The GT7 tone mapper is however better at preserving the perception of high dynamic range. The tone mapper, as implemented, targets an SDR paper white of 250 nits, using 100 cd/m^2 as the reference luminance (for values of 1.0 in the linear HDR framebuffer). This can result in an overall darker image compared to the other tone mappers but this can be controlled through camera settings, post- processing exposure, or lighting intensity. The GT7 tone mapper also allows to target HDR output, and could be made customizable via APIs if desired. The current implementation offers a fixed aesthetic solution.
This commit is contained in:
@@ -178,6 +178,9 @@ static void computeToneMapPlot(ColorGradingSettings& settings, float* plot) {
|
||||
case ToneMapping::PBR_NEUTRAL:
|
||||
mapper = new PBRNeutralToneMapper;
|
||||
break;
|
||||
case ToneMapping::GT7:
|
||||
mapper = new GT7ToneMapper;
|
||||
break;
|
||||
case ToneMapping::DISPLAY_RANGE:
|
||||
mapper = new DisplayRangeToneMapper;
|
||||
break;
|
||||
@@ -229,7 +232,7 @@ static void colorGradingUI(Settings& settings, float* rangePlot, float* curvePlo
|
||||
|
||||
int toneMapping = (int) colorGrading.toneMapping;
|
||||
ImGui::Combo("Tone-mapping", &toneMapping,
|
||||
"Linear\0ACES (legacy)\0ACES\0Filmic\0AgX\0Generic\0PBR Neutral\0Display Range\0\0");
|
||||
"Linear\0ACES (legacy)\0ACES\0Filmic\0AgX\0Generic\0PBR Neutral\0GT7\0Display Range\0\0");
|
||||
colorGrading.toneMapping = (decltype(colorGrading.toneMapping)) toneMapping;
|
||||
if (colorGrading.toneMapping == ToneMapping::GENERIC) {
|
||||
if (ImGui::CollapsingHeader("Tonemap parameters")) {
|
||||
|
||||
Reference in New Issue
Block a user