#RenoDX: Kingdoms of Amalur: Re-Reckoning

1 messages ยท Page 1 of 1 (latest)

loud haven
#

templates

#

very nice addition

white forge
#

Re-Re-Reckoning

#

this is my goto comfort game every once in a while

#

this is the ffx/smoothclamp hue?

#

neat

#

to match linear/untonemapped i did cpp```
config.reno_drt_contrast = 1.04f;
config.reno_drt_saturation = 1.05f;
config.mid_gray_nits = 19.f;

but that's technically all user adjustable (exposure for mid gray) if they want to perfect SDR cloning
#

i found a bug with swapchain resize with proxy that affects dx12, might not matter on dx11

#

basically danielle curve isn't a perfect straight line, but can be tweaked to be perceptually similar

#

hue correction here only needs [n = 100]

#

the rest is if you tried to use that for UpgradeTonemap

#

it's going out of gamut

#

i had to clamp ffx to bt709

#

we'll get gamut compression. one day

#

the hue should be correct. it's a saturation issue

#

hmm, i'll have to math that out, what's the proper setup. i don't think they're completely related but will check with tunic

#

in theory the math for getting the accurate hue doesn't need to be the same as replicating untonemapped

#

one math for vanilla-like hue, one math for upgrading

white forge
#

it probably widens the saturation

#

definitely different saturation values, for sure

#

hmm yeah, some divide by 0 or infinity somewhere

#

you can, gamma correct in any colorspace

#

our gamma correct safe is mirroring which isn't a real thing

#

try bt709 => ap1 => clamp => gamma correct => bt709

#

then it won't use mirroring

#

or even bt709 => bt2020 => clamp => gamma correct => bt709

#

(i don't trust ap1 ๐Ÿ˜… )

#

some color mismatch because of bt709 vs bt2020 primaries

#

could do a luminance only gamma correct, or make up some math for correcting back in bt709

#

gamma correct currently is by channel, so it's technically a contrast and saturator

#

float old_y = y::from::BT2020(color);
float new_y = y::from::BT2020(color::correct::Gamma(color));
color *= DivideSafe(new_y, old_y, 1.f);

#

i think

#

it will lack the saturation from gamma correct in bt709

white forge
#

hmmm. technically all shaders are 32bit float

#

but just older game with lots of color maybe

round radish
#

Is the difference between RenoDRT and DICE supposed to be this huge in this particular instance? RenoDRT:

white forge
#

i'm assuming dice is per channel?

#

dice blows out higher than renodrt

#

and with perchannel higher still

#

are you using swapchain proxy?

#

and you're doing 2.2 gamma?

#

yeah... so.... uh

#

if you clamp to bt2020 while in gamma your problems go away

#

it shouldn't work like that, but it do be that way

round radish
#

In everything else, RenoDRT and DICE look very, very close to each other. This weird blue ball is the first time where I've seen an actually significant difference between them.

white forge
#

essentially when you go to do shader math 32bit float to 16bit float in SRGB, when you get it back, the color saturation gets really borked

#
float3 PostToneMapScale(float3 color) {
  if (injectedData.toneMapGammaCorrection == 2.f) {
    color = renodx::color::srgb::EncodeSafe(color);
    color = renodx::color::gamma::DecodeSafe(color, 2.4f);
    color *= injectedData.toneMapGameNits / injectedData.toneMapUINits;
    color = renodx::color::gamma::EncodeSafe(color, 2.4f);
  } else if (injectedData.toneMapGammaCorrection == 1.f) {
    color = renodx::color::srgb::EncodeSafe(color);
    color = renodx::color::gamma::DecodeSafe(color, 2.2f);
    color *= injectedData.toneMapGameNits / injectedData.toneMapUINits;
    color = renodx::color::gamma::EncodeSafe(color, 2.2f);
  } else {
    color *= injectedData.toneMapGameNits / injectedData.toneMapUINits;
    color = renodx::color::srgb::EncodeSafe(color);
  }
  // Doesn't seem mathematically correct to do in gamma, but
  // surpresses extremely high saturation values when transition to 16bit gamma
  renodx::color::bt709::clamp::BT2020(color);
  return color;
}

this is my post tonemap i'm doing in the unreal one. essentially, clamp before to bt2020 when you're out of the tonemapper

#

but clamp while in gamma

#

i don't fully understand the math, but if i clamp in linear (eg when doing game_nits/ui_nits) i still get AP1 colors in the final shader which shouldn't be a thing

#

but when i clamp in gamma, it's properly clamped to bt2020

#

solves this from happening

#

like it's not supposed to have anything outside bt2020 if i clamp in linear but somehow it does when it gets to the final shader

round radish
#

For reference, this is the game in SDR mode, without RenoDX:

white forge
#

did you try the new blowout btw?

#

not dechroma, but actual blowout in renodrt

#

i haven't tested it, but something about 32bit linear (shader) => 32bit gamma (shader) => 16 bit gamma (texture) => 32bit gamma (shader) => 32bit linear (shader) => 16bit linear (texture)

#

when you blow it back up (decode) in the final shader, it's just wrong colors

#

that's my guess. if the you clamp to bt709 out of the tonemapper and the blue changes significantly then it's a gamut issue

#

and dice is just bt709

#

i have the game to test, fyi

#

i come back to it every few years

round radish
#

So the difference is normal then. Thanks.

white forge
#

screenshot difference?

#

btw, newest reshade lets you capture hdr pngs with keypress (i use F12), straight to clipboard

#

i think when i tried gamma correction in gamma space it warped skin tones a lot

cerulean prairie
white forge
#

that'd be linear

cerulean prairie
#

wait you're right

white forge
#

Another possibility is the srgb=>2.2 correction spirals out of control at higher luminances/values. There's probably a point where the correction should stop, or better lerp to 1.0 (no change).

There's probably a mathematical number. Maybe where they converge

#

There's also bgSRGB which seems to be designed for higher bit precision (not just 8bit)

#

bg = big gamut

white forge
white forge
#

2.2 correction vs linear (none)

#

Convergence isn't that bad, considering we do peak/white

#

And if anything we're making it dimmer?

white forge
#

special math for 10-16bit quantization

white forge
#

here we go. we should be clamping scRGB

white forge
#

It's not recommended to have bg-srgb values below -0.53 so we might be able to just clip to that

#

scRGB apparently has an oetf but we never use it?

#

Apparently those magic values for scRGB are just -8 and 2.4 when you use the bt709 eotf/oetf. that's where they come from.

#

Because it gets quantized that way (0-4096)

round radish
#

"Upgrade LUT per channel" shows some different results between on/off, but I have no idea what result is the "correct" one ๐Ÿ˜›

#

Is the "on" setting higher quality but more demanding?

#

It has no reset button ๐Ÿ˜›

#

For reference, this is OFF:

#

This is ON:

#

(Difference is in the "eye" of the bright round thing to the right.)

#

What's the use case of this option though?

#

Another thing I noticed now is that "flare" has no effect between 0 and 50. It only impacts the image at 51 and higher.

round radish
#

In the previous build 0 was default IIRC and it had a subtle effect when raised. I kept it at zero since this is a very high contrast game (too high, probably).

#

So 45 is the old 0?

#

It lowers black level, right? Default 50 sounds more like it's the neutral setting. Lowering it raises black levels, increasing it lowers black levels. But apparently 0 is still neutral, right?

#

I don't think it's ugly. Default is default, who cares if it's centered ๐Ÿ˜›

round radish
#

Works fine!

white forge
#

ui moving from user interaction usually isn't a problem

#

it's when it moves on its own that's bad

round radish
#

Looks fine to me. Another option of course is to gray it out and make it inoperable. That works too since there's not too many settings, so they all fit on the screen at once anyway.

white forge
#

content reflow can be kinda annoying and we don't have animations to help the user track visual changes

round radish
#

The flashing in loading screens is back though with this build.

#

The flash looks like this:

#

Version 20250101 didn't have it.

#

But let me test again to make sure.

#

Uh, now it stopped happening in the current version... lol.

#

So I guess something triggers it to happen, but then it stops happening ๐Ÿ˜…

#

Yep, can't make it happen again. So it's not related to the new version. It just randomly starts happening, then it doesn't.

#

๐Ÿคท

loud haven
#

you could try reverting to the old ersh method and see if that's the issue

#

rip

round radish
#

A short glitch in a loading screen is preferable to breaking res scaling ๐Ÿ˜›

loud haven
#

the town of light had a similar issue in the loading screen and pumbo's pushing a fix for it now

#

in the loading screen does reshade reload

#

like will hdr analysis disable and then restart again

round radish
#

It only ever happened for me with F9 quickloading.

#

Well, when loading a save game in general.

#

Haven't seen it happen in loading screen due to entering a new area.

round radish
round radish
#

Also posted an HDR video, but it's not showing up. I assume you need to manually approve it.

round radish
#

I finished it two days ago. 176 hours total play time. This game is huge ๐Ÿ˜›

round radish
#

Btw, bloom set to 22 looks way better in the game. 50 is too much and is useful mostly in SDR to give it a fake HDR look.

white forge
#

20 or 25 is essentially what i did for cyberpunk and starfield. bloom is for faking luminance in sdr containers, yeah