• Advertisement
Sign in to follow this  

Nearest-Depth Upsampling

This topic is 1325 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everyone.
 
I'm looking for ways to optimize my particle rendering system.
I implemented low resolution off screen particles explained in this article : 
 
 
 The basic concept is to render the particles in a downsized framebuffer and compose the resulting color texture with the main scene color texture.
 
Myy pipeline looks like this :
 
| Main Scene |----depth texture--->|  Low Res Particles |----color texture---->| Composition
 
The depth test is done in the low res particle rendering pass by comparing the scene depth sampled in the input texture with the current fragment depth.
This technique inevitably creates blocky artifacts where opaque geometry is in front of the particles.
 
I am now looking for a way to get rid of these artifacts. I found an Nvidia's article explaining a technique called "Nearest-Depth Upsampling" that seems really efficient:
 
 
But I don't understand this method... English is not my native language so I guess it doesn't help but I can't figure out what those sentences mean :
 

 

 

 

The nearest-depth upsampling filter fetches the 2x2 low-resolution depths in the bilinear footprint of the current full-resolution pixel and compares these 4 depths

with the full-resolution depth of the current pixel. Then the filter computes which of these four low-resolution depths is nearest to the full-resolution depth and
returns the corresponding low-resolution color for that sample. The nearest-depth filter can reconstruct high-quality edges if the resolution of the low-resolution rendering pass is high enough to capture the opaque-geometry features.

 

 

 
Can someone explain it to me in other words or with more details ?
 
Thank you.
 

Share this post


Link to post
Share on other sites
Advertisement

Nvidia has sample code that you can download from here, which includes the shader code for the nearest-depth upsample.

 

They used to have links for downloading individual samples, but unfortunately it now looks like you have to download all of them.

Share this post


Link to post
Share on other sites

Thank you MJP.

 

I'm not familiar with Direct3D but I'll study this code.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement