Sign in to follow this  
jeffkingdev

HDR Confusion

Recommended Posts

I implemented HDR + Bloom. My HDR seems a bit unstable and I don't know why. I was basically following the HDR Pipeline sample in the DX SDK + resources online.

I have these problems:[list=1]
[*]My scene gets blown out all the time. If I look at any dark part of the scene its blown out (see pic)
[*]If I move around, small changes in luminance values seem to make the ground flicker (I don't show this, but it happens)
[*]If I do lower my exposure to like 0.24. It does help, but then the overall scene is dark. If I then play with my lights, all I see is white spots on the terrain, but the rest of the terrain is still dark.
[/list]
As you can see, I'm really confused. Here's part of my Hdr post process shader:

[code]
....

// fExposure is = 1.0 (for simplicity)
// fGaussianScalar is = 1.0 (for simplicity)
// l.r = average luminance value (what you see in the pictures in the box I highlighted)
// l.g = max luminance value from the original texture.
// final = texture color.

float Lp = (fExposure / l.r) * max( final.r, max( final.g, final.b ) ) + 0.1;

float LmSqr = (l.g + fGaussianScalar * l.g) * (l.g + fGaussianScalar * l.g);

float toneScalar = ( Lp * ( 1.0f + ( Lp / ( LmSqr ) ) ) ) / ( 1.0f + Lp );

finalCol = (final) * toneScalar;
finalCol.a = 1.0;

return(saturate(finalCol));

[/code]

Here is what happens when I look at a white sky:
[attachment=11730:hdr-sky.jpg]

Here is what happens when I look at the ground:
[attachment=11731:hdr-ground.jpg]

Here is what happens when I set the exposure to 0.24 and look around:
[attachment=11732:hdr-lowexposure.jpg]

Share this post


Link to post
Share on other sites
i m not very sure about the format per pixel of the texture( variable final ). if is a kind of 16-bit type, it may beyond 1.0 and thereby it may be white though you saturate it. you can trace or debug by PIX, a software which is used to debug HLSL, or use nsight if you have 2 video cards. When tracing, you can watch the value variable final and finalCol.

Share this post


Link to post
Share on other sites
wngabh11,

It's a normal diffuse texture (8-bit per pixel, 32-bit texture). The toneScalar will +, or - the value which might make it blow out like it is.... problem is, is that what happens? I play games with HDR and it's a subtle effect. Mine is extreme and if I lower the exposure to get a more subtle effect, the scene is so dark, I can't get a normal blue color to show up.

When my exposure is set to 0.24, my white's are gray, I can't get them a true white.

Thanks
Jeff.

Share this post


Link to post
Share on other sites
Jeff.

your problems is vague for me, because there are many factors that can cause the problems. But as you said that changing the exposure can change the color, i guess, there must be some wrong parameters. And the white color also indicates that you color value is beyond 1.0. Hence, i hope you to check the value of variables when running the program. Debug them. it is not complex.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this