Render to an FBO with a depth-texture attached. Do whatever you want with the depth-texture afterwards: resizing, filtering, using as a parameter for a post-process filter like SSAO. And you can use gl_FragDepth to do tricks.
Yes, it’ll create artifacts, but in recent games developers often decide to render particles in half-resolution, as an optimization - that doesn’t create too noticeable problems.
Though, I do not know whether they reconstruct the Z value when resizing.
i think u mean quarter resolution ie 1/2 x 1/2
yes this is part of the reason i wanted it for, the artifacts were’t really noticable (though didnt look to closely)
the particles though did look quite a lot worse,
and as its not 4x quicker since u have to first lay down depth + also render the final particle texture blended upscaled over the whole framebuffer ive decided not to do it. (in fact often it will make the whole rendering slower, unless u just enabled it for frames where theres lotsa particles onscreen)
a better method is just to fade out the particles when they become to large on the screen