Sign in to follow this  
zonozz

SSAO with Odd Color In normal RT & position RT

Recommended Posts

Hi everyone !.

 

I'm really sorry to talk about this problem again just like I talked some days ago. But I really dont know :

 

1.Render Target - Normal Texture looks just has r and g value , so where is blue ?.(I use Render Target pixel format A32B32G32R32F)

2.Render Target - Position Texture looks really strange, what I think is position just like normal has 3 floats value, but why there is no

   brightness change??It looks really blue !?

3.The problem above is RenderMonkey's problem or my code error ?

 

Figure and vertex shader code?

[attachment=14694:SSAO 5.jpg]

 

Pixel shader code?

[attachment=14695:SSAO 6.jpg]

Share this post


Link to post
Share on other sites

1.Render Target - Normal Texture looks just has r and g value , so where is blue ?.(I use Render Target pixel format A32B32G32R32F)

 

If you think about what blue stands fors, namely the direction component on the z-axis (or is it x in this case?), we can safely assure that "blue" in this case is negative ( < 0.0f), since said axis points away from the camera, models normals towards it. Also, your format is overkill for normals, just convert them to 0.0f -> 1.0f range an store them in X8R8G8B8-target. You will later on want to convert them back, which is easy as well.

 

//convert to 0.0f - 1.0f
out.vNrm.rgb = 0.5 * in.vNrm.rgb + 0.5;

//convert from 0.0f -1.0f 
out.vNrm.rgb = 2.0* in.vNrm.rgb - 1.0;

 

2.Render Target - Position Texture looks really strange, what I think is position just like normal has 3 floats value, but why there is no

brightness change??It looks really blue !?

 

In contrast to normals, which are at least in range from -1.0f to 1.0f, position ranges up to XXXXX.Xf, so the light gradient areas are the once that lie in displayable 0.0f - 1.0f range, everything else is clamped to maximum 1.0f. You can't display color values beyond 1.0f, that is.

 

 

3.The problem above is RenderMonkey's problem or my code error ?

Neighter, nor, its just how graphics work ;)

 

EDIT: Some pictures how my gbuffer looks like, from the actual app:

EDIT2: Actually, note that my g-buffer is in world space, not in view projection space, so that explains why it looks slightly different.

ndbtgp3u.png

 

Now look at this picture, you should see a similar change when you turn the camera:

 

umxqnpev.png

Edited by Juliean

Share this post


Link to post
Share on other sites

1.Render Target - Normal Texture looks just has r and g value , so where is blue ?.(I use Render Target pixel format A32B32G32R32F)

 

If you think about what blue stands fors, namely the direction component on the z-axis (or is it x in this case?), we can safely assure that "blue" in this case is negative ( < 0.0f), since said axis points away from the camera, models normals towards it. Also, your format is overkill for normals, just convert them to 0.0f -> 1.0f range an store them in X8R8G8B8-target. You will later on want to convert them back, which is easy as well.

 

//convert to 0.0f - 1.0f
out.vNrm.rgb = 0.5 * in.vNrm.rgb + 0.5;

//convert from 0.0f -1.0f 
out.vNrm.rgb = 2.0* in.vNrm.rgb - 1.0;

 

>2.Render Target - Position Texture looks really strange, what I think is position just like normal has 3 floats value, but why there is no

brightness change??It looks really blue !?

 

In contrast to normals, which are at least in range from -1.0f to 1.0f, position ranges up to XXXXX.Xf, so the light gradient areas are the once that lie in displayable 0.0f - 1.0f range, everything else is clamped to maximum 1.0f. You can't display color values beyond 1.0f, that is.

 

 

3.The problem above is RenderMonkey's problem or my code error ?

Neighter, nor, its just how graphics work ;)

 

……

 

Thank you, you're so kind.Now I know the reason of those phenomenons. : )

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