I recently added a rendering pass in my engine to compute volumetric shapes via raymarching. Mostly to cast volumetric shadows with spot lights.
I render them at half resolution to save a bit on performance and keep it cheap. However I'm struggling to find a good upscale algorithm. Bilateral weights based on the differences on the depth buffer isn't enough.
I'm not sure what I could do better, without temporal anti-aliasing. I'm open to suggestions ☺️

@froyok Have you tried this: https://c0de517e.blogspot.com/2016/02/downsampled-effects-with-depth-aware.html
The important parts are using a min/max depth checkerboard pattern for the downscaled depth and then choosing between bilinear/bilateral upsampling based on depth discontinuity for a given pixel.

Also randomly offsetting the rays with blue noise and then running a bilateral blur over the volumetric target before upsampling helps. Allows to get away with huge steps during raymarching.

Low-resolution effects with depth-aware upsampling

Realtime rendering and videogame programming mostly, but I love computer science and visuals in all their forms. This is a notepad of my ideas.

@blurple I haven't tried the checkerboard, but I tried different combination of bilinear and nearest filtering with custom weights. No luck so far.