Search Unity

Temporal Supersampling Showcase

Discussion in 'Image Effects' started by TacticalDan, May 29, 2017.

  1. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35


    Hello,

    Here to show off some work I've been doing with deferred antialiasing/supersampling.

    "In this demo the scene is being rendered at 1080p and accumulated over 16 frames into an 8k accumulation buffer. The final output is downsampled to 1080p for a 16x looking AA effect. Downsampling a supersampled image is much more effective than traditional MSAA at smoothing out jaggies and subpixel detail, since it works on cutout shaders [foliage and grass] as well as edges, and also smooths over very bumpy shiny PBR surfaces for less aliased sparkling. TSS is better than TAA at reducing artifacts, since I can operate in the higher resolution accumulation space to minimize temporal flickering and unecessary blurring. The resulting image is much cleaner and sharper than TAA.

    There's some artifacts associated with any temporal screenspace effect - Doesn't play as nice with transparent effects that don't write to depth buffer [see sprinkler], can show streaks behind motion [see fence], but I think the gains are worth it.

    Temporal Supersampling is new to games, first introduced by Rainbow Six Seige and popularized by the PS4 pro under the name of 4k 'checkerboarding'. TSS allows for high resolution scenes to be rendered using a smaller render buffer. During each frame the scene is rendered in a low resolution with a jittered offset frustum to fill a different set of pixels in the high res accumulation buffer. The accumulation buffer samples a temporally distorted version of the previous buffer for pixels that aren't updated that frame."

    I started working on this again in direct response to digital foundry's video on console 4k techniques ---



    Do you think the technique is viable over fxaa and taa? Would you use it in your PC title as an antialiasing solution or perhaps use it to render expensive scenes at lower res and upscale to native resolution? A combination of both?

    Thanks all
     
    Lex4art likes this.
  2. GoGoGadget

    GoGoGadget

    Joined:
    Sep 23, 2013
    Posts:
    864
    Just on your video, not sure if it was YT-compression related or not but the wires actually looked like they had a fair bit of aliasing - certainly more than I'd expect from any sort of TAA/TSSAA.

    I think TSSAA still has a place, particularly for rendering at a lower-than-native res, but TAA has already basically proven (CoD/BF1) that it's the 'cutting edge' for new AA methods, but like with any image effect, there's "TAA" and then there's TAA. You can have first-gen, really blurry, crap TAA, then you can have what CoD has, which is some sort of god-effect that has had more engineering resources put into it than the last space mission.

    Unity's TAA is coming along, their sharpen in it is crap though, and it's still far from being AAA in terms of performance + quality. Give it a few more iterations and I'm sure it will be 'good enough'.
     
  3. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    Yeah that shimmering wiring artifact comes from the fact that I'm point sampling the previous accumulation buffer into the current. I found bilinear sampling between frames blurred out textures on surfaces too much while moving, so I wanted to see how far I can get without it. I might look into doing some fxaa in the accumulation buffer space before downsampling again, perhaps that'll keep things sharp and smooth.

    I want to stay distinct from TAA, even the proven stuff like BF1's rendition, by ensuring the image stays as readable as possible without resorting to sharpening in post. Philosophically it could be thought that TAA's ability to blur out the background geometry allows the gameplay to read better? Not entirely sure either way.
     
  4. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    That Blops 3 TAA is actually really good though, I wish I could get a sip of that secret sauce :p
     
    GoGoGadget likes this.
  5. jvo3dc

    jvo3dc

    Joined:
    Oct 11, 2013
    Posts:
    1,520
    So this is essentially an extension of TAA where you store multiple frames instead of a single one. That could indeed help, but I do wonder whether you actually need to store 16 copies to get good results. TAA by itself can get a long way in providing AA. The thing you want to remove here is any visible jitter (when the camera is standing still.) I'm going to try working with 2 or 4 TAA buffers first to keep things a bit lighter.

    Here are some TAA results I had before. (Ok, a bit fake, downscaled from 3840 wide and sharpened, but besides that pure TAA.)

    FINES_Cam02A.jpg FINES_Cam04A.jpg FINES_Cam08A.jpg