Hi, I’m seeing strange behavior with shiny materials and HDRI skies in HDRP 7.4.1. Unsure if this is a bug, limitation, or config issue.
Here’s a camera pointed at a chrome sphere, which is reflecting an HDRI sky. The sky’s intensity is set to a 1x multiplier. As one would expect, as I increase the camera’s exposure value the reflection of the sky darkens until only the disc of the sun is visible:
hospitableesteemedleafhopper
However, if I increase the intensity of the sky to realistic levels, something goes awry. Here the sky has been set to 111,000 lux, and the camera’s EV raised accordingly. As I further raise EV to darken the image, the reflected sky clips to white and then darkens uniformly, washing out the sun in a blob of grey:
respectfulunpleasantboar
NOTE: This problem ONLY affects REFLECTIONS. The camera here is pointed at the surface of a smooth, fully-metallic ball. If I point the camera directly at the sky and adjust the EV, the image darkens naturally. This issue appears to only affect the lower-resolution cubemap that Unity generates for sky reflections, not the sky itself.
For an even more dramatic example, here’s the Gareoult HDRI from Unity’s own sample assets. It is extremely bright, with the sun directly overhead. Unity provides the actual measured lux value to scale the HDRI back to real-world intensity.
At a 1x multiplier everything looks good, although the intensities are obviously non-physical:
However, if I scale the intensity up to 135,000 lux (the value supplied by Unity for this sky) and raise EV to compensate, something goes horribly wrong. The blue of the sky (which should be extremely dim compared to the sun) has somehow blown out the apparent color of the non-metals, while the sun disc is again a washed-out grey:
These scenes are using all default settings from the HDRP wizard, except for the overrides shown in the images. It seems as though the reflection cubemaps that HDRP generates are unable to represent the dynamic range of physically-realistic sunlight.
Is this a bug in HDRP, or is there some configuration setting that I’m missing?