Gamma/Tone Washing Out Image - How to Fix?
I have a city in a generic forward renderer with simple lighting: blue-ish ambient, a cubemap for some additional lighting, and a directional light for the sun. The scene looks fantastic.
I have the same scene setup in Unreal Engine. I tried using a solid sky light color and also a cubemap for sky light. I used these with a warm direct light representing the sun. I was highly disappointed with how washed out the color was and after a while I became convinced it has something to do with either the gamma correction in one of the core shaders OR it's a flaw in how the lighting is blended with the sample diffuse. I don't know exactly which. I tried completely commenting out the gamma correction step in GammaCorrection.usf and reloading the engine. It made no difference in the image. Can someone please tell me what's going on that's causing Unreal to compress and wash out the colors and how to fix it?
Below are two images. The first more vibrant and richer one is the generic forward renderer. This is the look I want.
The second image is the Unreal render. Note how flat the relative colors are.
ADDITIONAL NOTES: Changing the Exposure does not seem to effect the relative color curve or look other than shifting the total luminance of the image up or down. I played with Exposure and lighting intensities plenty to verify this. The problem has got to be the way the lighting itself is shaded or something to do with low level gamma correction or tone mapping in the core shaders.
Any help on this would be appreciated.
Sorry for double post. but I got a solution to the tone mapper. Check it out ! https://forums.unrealengine.com/showthread.php?140851-Dissable-Color-Grading-and-Tone-mapper-completly-or-!
Also I wonder if there is a sweet spot for setting up color grading and tone mapper to where we can get a default non tone mapper look and feel. so that we can still use the tone mapper in specific cases ! Has anyone actually attempted that here? playing with the post process settings in search for the sweet spot?
Figured it out. Disabling the tonemapper is as simple as passing the Linear Color out of the tonemap shader. I did that like this: OutColor = float4(LinearColor.rgb, LuminanceForPostProcessAA);
But that wasn't the only problem. I also had to uncheck the sRGB checkbox on every single texture in the scene because everything was super dark without the tonemapper until I unchecked that box. Here's what the image looks like now. The colors are far closer to the original tonal range in the source texture. Brights blow out nicely and the high tones have their original contrast.
answered May 16 '14 at 10:06 PM
I'd guess the generic forward renderer didn't do lighting properly in linear space, or didn't use a tonemapper at all. The tonemapper causes some loss of contrast because it maps a large HDR range to a small LDR range, that's a necessary evil.
You can disable the tonemapper with a show flag, and then it will use the simple gamma correction path.
Can you combat it with the contrast settings in PP, or increase the contrast in your lighting (less ambient so shadows are darker, more directional).
answered May 15 '14 at 07:49 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here