Mintmaster
Veteran
That's not correct at all (especially the part I bolded).Chalnoth said:Well, the thing is, you can get away with lower dynamic range if you're tuning your rendering algorithm for a single scene. But true HDR allows you to not have to worry about the overall light level, and just let the tonemapping pass take care of it.
For example, one of the most fantastic places in FarCry for HDR was when I was exiting a cave. I thought it caught the effect of moving from a dark area to a very bright area quite well. That's something you just can't do without either true HDR, or hardcoding the effect. I don't think it makes much sense to hardcode that sort of thing, because it'll lead to spotty implementations.
Even with tone-mapping, you need to have a scaling factor. You can't just use the same curve for all data, or you'd have really crappy black levels in bright scenes and dim whites in dark scenes. e.g: If outdoors the sky has a value of 1,000 and the shadows are 1, you'd want the shadows to be pretty much black. Indoors, if an illuminated white wall has a value of 1.0, and the shadows have a value of 0.001, you'd want 1.0 to be close to white now, and 0.001 will be black.
In other words, you can't have a fixed global iris. You can't "not have to worry about the overall light level", or your tone mapping implementation will look like crap. Imagine a video camera with a fixed shutter speed and aperture. It would be next to useless.
Look at the RTHDRIBL demo. It downsamples the full scene to a single pixel, and uses that value, averaged over a few frames to simulate auto-exposure delay in a camera/eye, to determine the exposure level.
Now, with FP16 you don't have to worry about the scaling until the tone-mapping pass. With FP10 or FX16 or other alternative, you use the exposure value from the previous frame to scale the value rendered into the buffer, and avoid scaling during the tone-mapping pass. A one frame latency for an effect that looks better with a time delay anyways is meaningless.
No hardcoding needed.