Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


#ActualJuliean

Posted 07 April 2013 - 05:27 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


#4Juliean

Posted 07 April 2013 - 03:33 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:

ndbtgp3u.png

 

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

 

umxqnpev.png


#3Juliean

Posted 07 April 2013 - 03:20 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 z 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:

ndbtgp3u.png

 

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

 

umxqnpev.png

 

 


#2Juliean

Posted 07 April 2013 - 03:15 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 z 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:

 

//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:

 

ndbtgp3u.png


#1Juliean

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 z 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:

 

//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 ;)


PARTNERS