Surround Setting

As mentioned in the April 3 WG call, I added the ability to pass the a surround setting to the JMh-to-XYZ conversion that happens toward the end of the processing chain. (I believe this effect is equivalent in the Nuke to changing the selection for the Output viewing conditions.) It is important to note that changing the values at this step change the effect of the JMh-to-XYZ conversion step only and does not cascade back to the other times the surround values are used in by the same CAM formulas, so won’t affect the earlier rendering steps or parameter that have already been set to assume those values for the CAM conversions.

The effect seems to be what we’re after but the magnitude of the adjustment between the settings is quite large.

It was suggested that I compare against the adjustment currently being done in v1, which I knew to be quite subtle, but noticeable. The plots confirm that the magnitude of the effect is much greater in v2 with the current values that are set by the viewingConditionsToSurround( ) function.

With a bit of further testing, I think we could still use this mechanism to apply the adjustment, but just set more realistic values for the 3 toggles. The default in all of the transforms right now is “dim” because that is what everything was set to while we were doing the development.

1 Like

Based on a quick test, getting ACES1-like behavior is just a matter doing +/- 0.01 of the dim values. Something like this:

dark = 0.58, 0.89
dim = 0.59, 0.9
average = 0.6, 0.91

Is ACES1 a good reference for comparison?

No I don’t believe so. Although at this point, v1 is probably at least somewhat more realistic a guide than the existing parameters as pulled from the CAM (since we’re not using them as intended and we’ve been told that even when used as intended they don’t seem right).

I agree that a much smaller value change along the lines of +/- 0.01 is probably much closer to what values would be determined if we did some testing, but without setting up some experiments to verify, such numbers would just be a guesstimate.

Have you tested whether you need to include this in the hull for gamut mapping, as @priikone mentioned? If the conversion from JMh to output is changed, intuitively the hull we gamut map to also has to change. If the surround tweak was after all output but before encoding, eg a gamma tweak to Y when we were in XYZ before final RGB encoding, that wouldn’t affect gamut mapping.