Jump to content

  • Log In with Google      Sign In   
  • Create Account

#Actualkalle_h

Posted 08 January 2013 - 05:13 PM

You could try storing just x and y to 16-bit channels and reconstruct z. But you need steal one bit of information from other channels to get good results. If you have this extra bit that you could use this would be easy and fast encode/decode scheme with ok quality

#2kalle_h

Posted 08 January 2013 - 05:12 PM

You could try storing just x and y to 16-bit channels and reconstruct z. But you need steal one bit of information from other channels to get good results. If you have this extra bit that you could use this would be easy and fast encode/decode scheme with ok quality

#1kalle_h

Posted 08 January 2013 - 05:12 PM

<blockquote class="ipsBlockquote" data-author="B_old" data-cid="5019200"><p>Until now I used to store the normals in my g-buffer in view space and encoded with the spheremap technique that is described is <a data-cke-saved-href="http://aras-p.info/texts/CompactNormalStorage.html" href="http://aras-p.info/texts/CompactNormalStorage.html">here</a>&nbsp;(two 16 bit unorm channels). That works good.<br />&nbsp;<br />I find myself using world space normals increasingly often for world space light probes and stuff like that, so I thought it might be beneficial to just store world space normals in my g-buffer.<br />&nbsp;<br />The spheremap technique is not suitable any longer because I get completely wrong normals close to the "z-pole" when viewing the normals of a sphere for instance.&nbsp;<br />I then tried storing the normals as mentioned in the paper about the <a data-cke-saved-href="http://www.unrealengine.com/files/misc/The_Technology_Behind_the_Elemental_Demo_16x9_(2).pdf" href="http://www.unrealengine.com/files/misc/The_Technology_Behind_the_Elemental_Demo_16x9_(2).pdf">Unreal Engine 4 demo</a>. They simply use a R10G10B10A2 format.&nbsp;It has the same space requirements, but even with a specular power of 128 I can clearly see artifacts in the hightlights on a sphere, which is disappointing. (Of course the problem is much less apparent with more complex geometry and normal maps.)<br />&nbsp;<br />I also tried a R16G16B16A16 format which looks fine. But I am curious I you know of some more compact storage method that works well with world space normals?</p></blockquote><br />You could try storing just x and y to 16-bit channels and reconstruct z. But you need steal one bit of information from other channels to get good results. If you have this extra bit that you could use this would be easy and fast encode/decode scheme with ok quality.

PARTNERS