Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


#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