Background image colour shift in render Cycles

This happens becuase your JPG only contains closed domain info (0 to 1), while you 3D scene render contains open domain info (0 to infinity).

A hack that might work, in the colorspace setting of your JPG node, this setting is telling the software which colorspace this file is encoded in, so that software can transfer the file from the encoding to the working space of the software. So in that setting, mark the file as Filmic sRGB (exposed after 3.3, if you are using 3.2 and lower, you need to modify the config file yourself), then Blender will assume the texture was encoded by Filmic transform, and it will attempt to invert the Filmic transform. The result will be a “fake HDRI” that only works under the same Filmic transform at the end. This is a hack since you JPG is obviously not encoded by Filmic, but it might work in this case.
image

This hack will transform your 0 to 1 JPG to 0 to about 16 (Filmic’s dynamic range), it is “as if this image was encoded by Filmic”, it is not, so this is a hack, and might break apart under different view transform, it will break apart if you just lower the exposure etc. Therefore it is a hack. But it might work.

1 Like