Forum

Waking up the sleeping code devils :P

Discuss programming topics for any language, any source base. If it is programming related but doesn't fit in one of the below categories, it goes here.

Moderator: InsideQC Admins

Waking up the sleeping code devils :P

Postby revelator » Mon Aug 19, 2013 4:18 am

Phun aside :) sikkpin asked my help getting SSAO to Work, but before i lead him into even darker reaches :twisted: I suggested id ask here, maybe MH or barnes can give him a hint of what would be needed.

From his post at doom3world.

What are the chances of getting you to help me with a problem that I can't seem to figure out. That problem being generating the ao buffer before the lighting pass. Since I don't know enough do it from scratch (draw a fullscreen quad, bind the shader and such, and then draw and capture), I'm forced to rely on the functionality that's already there (DrawStretchPic(),EmitFullScreen(),RB_STD_DrawShaderPasses(), etc.) but no matter what I do, I just can't get it to work.

I mean, ssao is already in there and fully functional, but since the ao texture is created after the lighting pass during the post process phase but passed to the lighting shaders, it's always a frame behind, which of course doesn't look good. Other than the surface sorting issue, which I can live without, proper ssao is the only thing left rendering-wise that I really need done.

So what do you say? :) I'll be in your debt and will do anything you need that's in my power to return the favor.


Cheers

Sikk


In return i bet he would probably help with any shader related stuff you might be fighting with :)
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2496
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Waking up the sleeping code devils :P

Postby qbism » Mon Aug 19, 2013 5:04 pm

Have you noticed any issues with soft shadows freaking if textures are set to downsample? 1024 or 256 for example.
User avatar
qbism
 
Posts: 1230
Joined: Thu Nov 04, 2004 5:51 am

Re: Waking up the sleeping code devils :P

Postby revelator » Mon Aug 19, 2013 6:32 pm

Aye so do not downsample :lol:

It uses an image to get the depth renderer for the softshadow effect much like the SSAO hack so downsampling will make it look wierd,
was wondering if we couldnt create one at runtime instead of using a hardcoded one hmm ? bit like darkplaces detail maps.

edit: should actually be redone sikk created it while doom3 was not GPL and it probably suffers from a bit of the same issues that SSAO does.
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2496
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Waking up the sleeping code devils :P

Postby revelator » Mon Aug 19, 2013 10:21 pm

Code: Select all
//==============================================================================
// Screen-Space Soft Stencil Shadows or SSSSS ;)
//==============================================================================
postProcess/softShadows
{
   sort   postProcess

   // soft shadow sample
   {
      if ( Parm3 == 0.0 )
      Program      ss_sample.vfp
      fragmentMap   0      _ssRender
      fragmentMap   1      _currentRender
   }

   // shadow mask blur
   {
      if ( Parm3 == 1.0 )
      Program      ss_blur_box.vfp
      vertexParm   0      Parm0      // offset scale
      vertexParm   1      Parm1      // epsilon
      vertexParm   2      Parm2      // field of view
      fragmentMap   0      _ssMask
      fragmentMap   1      nearest _ssDepth
      fragmentMap   2      _currentRender
      fragmentMap 3       nearest forceHighQuality textures/postprocess/dither16x16.tga
   }
   {
      if ( Parm3 == 2.0 )
      Program      ss_blur_poisson.vfp
      vertexParm   0      Parm0      // offset scale
      vertexParm   1      Parm1      // epsilon
      vertexParm   2      Parm2      // field of view
      fragmentMap   0      _ssMask
      fragmentMap   1      nearest _ssDepth
      fragmentMap   2      _currentRender
      fragmentMap 3       nearest forceHighQuality textures/postprocess/dither16x16.tga
   }
   {
      if ( Parm3 == 3.0 )
      Program      ss_blur_x.vfp
      vertexParm   0      Parm0      // offset scale
      vertexParm   1      Parm1      // epsilon
      vertexParm   2      Parm2      // field of view
      fragmentMap   0      _ssMask
      fragmentMap   1      nearest _ssDepth
   }
   {
      if ( Parm3 == 4.0 )
      Program      ss_blur_y.vfp
      vertexParm   0      Parm0      // offset scale
      vertexParm   1      Parm1      // epsilon
      vertexParm   2      Parm2      // field of view
      fragmentMap   0      _ssMask
      fragmentMap   1      nearest _ssDepth
      fragmentMap   2      _currentRender
   }


   // final blend for unblurred shadow mask
   {
      if ( Parm3 == 5.0 )
      Program      ss_blend.vfp
      fragmentMap   0      _currentRender
      fragmentMap   1      _ssMask
   }
}


notice the -> nearest forceHighQuality textures/postprocess/dither16x16.tga ? my best bet is that this is where it goes buum with downsampling :)

but it seems parms above 3.0 uses the internally created texture so try and fiddle a bit with its settings.
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2496
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger


Return to General Programming

Who is online

Users browsing this forum: No registered users and 2 guests