SIGGRAPH 2016

Confirmation TAA in UC4 is combined with sharpen filter and with all system cost probably less than 2ms on PS4... No cost is given for motion vector.
I am surprised how simple their implementation is:
- Simple bilinear fetch from last frame buffer. No advection filter of any kind, for example bicubic or BFECC. Advection filter would reduce some blurriness from the reprojection.
- Simple box nbhood clamp instead of box-ray clipping. Clipping reduces blockiness of failed reprojection (caused by 3x3 neighborhood clamp).
- Artist authored (manual) stencil bit instead of some heuristic (depth, motion vector difference, etc) to reduce ghosting.
No cost is given for motion vector.
Motions vectors are also required for motion blur. 30 fps game absolutely needs motion blur, so this cannot be counted as an extra TAA cost. TAA motion vectors however need some extra precision (13+12 bits is enough for 1080p).
Epic's work on bringing Agregate buffers to UE4 is very interesting and even a bit ambitious. I think that kind of aproach will become very popular eventually.
MSAA for coverage + fixed sample rate shading is very promising. No need to branch and load balance work. 2 shaded samples per pixel with more precise coverage reconstruction seems to be close to the sweet spot. Techniques like this work very well with deferred texturing. See here: https://forum.beyond3d.com/threads/modern-textureless-deferred-rendering-techniques.57611/.
 
I am surprised how simple their implementation is:
- Simple bilinear fetch from last frame buffer. No advection filter of any kind, for example bicubic or BFECC. Advection filter would reduce some blurriness from the reprojection.
- Simple box nbhood clamp instead of box-ray clipping. Clipping reduces blockiness of failed reprojection (caused by 3x3 neighborhood clamp).
- Artist authored (manual) stencil bit instead of some heuristic (depth, motion vector difference, etc) to reduce ghosting.

Motions vectors are also required for motion blur. 30 fps game absolutely needs motion blur, so this cannot be counted as an extra TAA cost. TAA motion vectors however need some extra precision (13+12 bits is enough for 1080p).

MSAA for coverage + fixed sample rate shading is very promising. No need to branch and load balance work. 2 shaded samples per pixel with more precise coverage reconstruction seems to be close to the sweet spot. Techniques like this work very well with deferred texturing. See here: https://forum.beyond3d.com/threads/modern-textureless-deferred-rendering-techniques.57611/.
ND's solutions for U4 are very ad-hoc, more so than I expected, and I did expect it already.
As for Epics Agregate buffer, I think this is barely a start. Them not supporting MSAA or some other custom sample patterns instead or naive Super Sampling is the most urgent direction for future work in my opinion. I think there is lots of variables and aproaches still before finding a definitive sweet spot. Things like Analytical coverage derived by distance to poly's edge might reduce the need for too many coverage samples for exemple.
I'm particularly interested in your views, sebbbi, in regard to how you think this fares against your textureless rendering ideas, or what ideas from one could translate to the other. I feel like even if lighting is done in virtual texture space, there's still some value in having some form of traditional G-buffer (even if at a lower res and precision/pixel-bit-depth than one would find necessary for actual shading) for SS effects like GI aproximations, SSS, and so forth... How would you implement those in your textureless shemes?
 
Good stuff. Tile classification is the way to go if you are deferred rendering and need lots of material / lighting variety.

Black Rock (Split/Second) was the first one to use complex classification scheme in their renderer. Unfortunately the studio closed a few years ago. The direct PDF link for their SIGGRAPH 2010 presentation no longer works. If you have ACM account, you can access it here: http://dl.acm.org/citation.cfm?id=1837046.

I am wondering why Naughty Dog is using 16x16 tiles for classification (*). The slides unfortunately didn't have any notes to explain this. 8x8 (= GCN wave size) results in significantly less pixels which belong to a (dynamic branched + expensive) "edge" tiles. Black Rock used tiny 4x4 tiles. This allowed them to do much more fine grained classification. For example MSAA shader permutation was only executed for tiles that contained geometry edges. Local and global lights and sun shadows were also classified. If a tile was classified to be fully in shadow the sun light was not applied to it, if it was classified to be fully lit the shadow map was not sampled at all. Only tiles containing a shadow edge sampled the full res shadow map (and applied expensive soft shadow filter).

(*) My wild guess is local light culling. 16x16 tile size seems to be the sweet spot brute force tiled light culling. Coarse light culling before the lighting pass (for example to 64x64 tiles) would greatly reduce the overhead of culling per wave (8x8 tile).
 
Best transparency in game are into the Playdead game Inside. He thinks it is mostly due to art and probably only applicable to Inside.
 
Oh, I did consider Mitchell-Netravali , but the use cases seemed better with Catmull-Rom.
 
Back
Top