When I open an EXR in Nvidia Texture Tools it looks like I would expect:
![](https://uploads.gamedev.net/forums/monthly_2024_05/38b064391cc64df095c440040a0e60cb.Untitled.jpg)
If I open the same image in RenderDoc or in my own software it looks like this:
![](https://uploads.gamedev.net/forums/monthly_2024_05/86117d2a0cc948458e9d97feb22125b5.Untitle2d.jpg)
What is the equation to “fix” these images?
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
When I open an EXR in Nvidia Texture Tools it looks like I would expect:
If I open the same image in RenderDoc or in my own software it looks like this:
What is the equation to “fix” these images?
I think there are 2 issues with your image:
Tone mapping curves have a shape similar to this, which maps an input in [0,infinity] to [0,1]. This is the exponential tone mapping operator I posed in the other thread:
There are other possibilities (e.g. Reinhard, ACES), but this is the one I think looks the best. It's important to note that these tone mapping operators all have different slopes, which can confuse comparisons. To avoid this, I try to normalize the operator so that an input of 1.0 produces an output of 0.8. This makes it look about the same as a LDR rendering, and makes comparisons more meaningful.
I didn't do anything. I am just displaying the actual image data. It's RGBA 32 float, so 1.0,1.0,1.0 equals 255,255,255. RenderDoc displays the exact same thing.
Josh Klint said:
It's RGBA 32 float, so 1.0,1.0,1.0 equals 255,255,255
That doesn't make sense. 32-bit float shouldn't have a maximum of 255, and is probably calibrated so that 1.0== white, not 255==white like in 8-bit images.
To show how it is indeed a gamma issue, I took your screenshot and applied linear→sRGB gamma (approximately sqrt()) to the image. I get something close to the NVIDIA tool:
So you probably have an issue on the import side which causes incorrect gamma. For example, maybe the image import library does a sRGB→linear gamma conversion for you automatically that shouldn't be done.