Jump to content

  • Log In with Google      Sign In   
  • Create Account


SSAO with Odd Color In normal RT & position RT


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 zonozz   Members   -  Reputation: 158

Like
0Likes
Like

Posted 07 April 2013 - 02:27 AM

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:

SSAO 5.jpg

 

Pixel shader code:

SSAO 6.jpg



Sponsor:

#2 Juliean   GDNet+   -  Reputation: 2364

Like
1Likes
Like

Posted 07 April 2013 - 03:12 AM

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, 07 April 2013 - 05:27 AM.


#3 zonozz   Members   -  Reputation: 158

Like
0Likes
Like

Posted 07 April 2013 - 06:22 AM

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. : )






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS