* Replaced DIM_OUTPUT_DEVICE enum with OUTPUT_DEVICE_SRGB boolean, matching CombineLUTs logic.
* Removed USE_BLOOM since it was always active.
* Removed USE_VIGNETTE and replaced with dynamic branch.
The active permutations on windows desktop now total (44 out of 256) down from (280 out of 5120) for FTonemapPS before this change. METAL_MSAA_HDR_DECODE could also be removed in a subsequent CL which would bring the active count to (22 out of 128), though abstaining here since I have no means of profiling on iOS. Further changes (removal of) POST_PROCESS_ALPHA should follow shortly.
#jira UE-220034
#rb Jason.Nadro
[CL 35395019 by eric renaudhoude in ue5-main branch]
See https://docs.acescentral.com/specifications/rgc/ for the use cases this fixes.
It's disabled by default to keep the existing behaviour
#rb eric.renaudhoude
#jira UE-195803
#tests PIE
[CL 28184333 by benjamin rouveyrol in ue5-main branch]
* 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]