* De-hardcode UI luminance, now driven by r.HDR.UI.Luminance
* Expose hard-coded ACES tonemapper parameters:
- r.HDR.Display.MinLuminanceLog10 (-4.0) defines the luminance for the darkest point in the scene, and will also compute its ACES value (through lookup_ACESmin). The same is happening with the existing CVar r.HDR.Display.MaxLuminance, through lookup_ACESmax
- r.HDR.Display.MidLuminance (15.0) defines the luminance for 18% gray. It works by offseting the dakest and brightest points in the scene
- r.HDR.Aces.SceneColorMultiplier (1.5) . This acts like a gain to ensure consistency between ACES (for HDR) and UE (for SDR) tonemappers.
From my tests, r.HDR.Aces.SceneColorMultiplier and r.HDR.Display.MidLuminance are a bit redundant, but the former acts as a gain on the input color, whereas the latter changes the anchor points for the tonemapper. Since they don't have a linear relationship, it felt useful to keep them both.
some examples:
Default Values (used in initial implementation of ACES 1.3)
r.HDR.Display.MinLuminanceLog10 = -4
r.HDR.Display.MidLuminance = 15
r.HDR.Aces.SceneColorMultiplier = 1.5
ACES 1.3 reference values (match reference images for r.HDR.Display.MaxLuminance=1000, 2000, 4000)
r.HDR.Display.MinLuminanceLog10 = -4
r.HDR.Display.MidLuminance = 15
r.HDR.Aces.SceneColorMultiplier = 1.0
ACES 1.3 with better fit to UE SDR tonemapper (scaled to 300 nits)
r.HDR.Display.MinLuminanceLog10 = -4
r.HDR.Display.MidLuminance = 54
r.HDR.Aces.SceneColorMultiplier = 1.0
#review eric.renaudhoude
#jira UE-162970
#preflight 6319a664a60c539c987c1e45
[CL 21890495 by benjamin rouveyrol in ue5-main branch]
Updated ACESOutputTransformsRGBD65 so ACESOutputTransformsRGBD65(0.18)=0.18, just like FilmToneMap does. This helped to get similar brightness between these 2 tonemappers and should be useful for people who would like to use ACES, even in SDR.
#rb eric.renaudhoude rod.bogart
#preflight 630652115366f61a42c3fbe7
#jira UE-151467
[CL 21559813 by benjamin rouveyrol in ue5-main branch]
This focuses initally on integration in CombineLUTs and its device-encoding-only equivalent, but exposes a global color space conversion uniform buffer for later use within the renderer but also in plugins.
#jira UE-153249
#rb rod.bogart, brian.karis, benjamin.rouveyrol
#fyi ruslan.idrisov
#preflight 62c4a5c9892b4d4f30f5ef66
[CL 20950630 by eric renaudhoude in ue5-main branch]
This correctly replicates the combine LUTs and tonemap shaders, where the final conversion from AP1 to sRGB is applied after the LUT.
#jira none
#rb benjamin.rouveyrol, rod.bogart
#preflight 62b499d6ce64aeefefb9308e
[CL 20796884 by eric renaudhoude in ue5-main branch]
#rb rod.bogart, zach.bethel, matt.kuhlenschmidt
#ROBOMERGE-SOURCE: CL 13056912 via CL 13056949 via CL 13056976
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13056980 by christina tempelaarl in Main branch]