I mean: what is temporal reprojection? Just use a few old frames and interpolate new ones? Can't be that primitive and would not be called reprojection.
So what is temporal reprojection (in a mathematical sense?)
According to Guerrilla: http://www.killzone.com/en_GB/blog/news/2014-03-06_regarding-killzone-shadow-fall-and-1080p.html
Temporal reprojection is a technique that tracks the position of pixels over time and predicts where they will be in future. These “history pixels” are combined with freshly rendered pixels to form a higher-resolution new frame. This is what KILLZONE SHADOW FALL uses in multiplayer.
So, in a bit more detail, this is what we need for this technique:
We keep track of three images of “history pixels” sized 960x1080
The current frame
The past frame
And the past-past frame
For each pixel we store its color and its motion vector – i.e. the direction of the pixel on-screen
We also store a full 1080p, “previous frame” which we use to improve anti-aliasing
Then we have to reconstruct every odd pixel in the frame:
We track every pixel back to the previous frame and two frames ago, by using its motion vectors
By looking at how this pixel moved in the past, we determine its “predictability”
Most pixels are very predictable, so we use reconstruction from a past frame to serve as the odd pixel
If the pixel is not very predictable, we pick the best value from neighbors in the current frame
On occasion the prediction fails and locally pixels become blurry, or thin vertical lines appear. However, most of the time the prediction works well and the image is identical to a normal 1080p image. We then increase sub-pixel anti-aliasing using our 1080p “previous frame” and motion vectors, further improving the image quality.
You can also see that in the link i posted above in his "rendered pixels" comparison and the final result. Regarding AA, there was a GDC presentation yesterday about this, maybe you can find it
http://schedule.gdconf.com/session/temporal-reprojection-anti-aliasing-in-inside
Temporal Reprojection Anti-Aliasing is a spatio-temporal post-process technique, where fragments from the most recent frame are correlated with fragments from a history buffer through reprojection. By carefully jittering the view frustum, and by making sensible choices for when to accept or reject a history sample, this technique can produce images that are superior to the input in terms of information density, because the information in every fragment accumulates over time.
This talk will focus on Temporal Reprojection Anti-Aliasing in the context of INSIDE. It will touch on the process, the initial research, and the pleasant side-effects. Most importantly, it will discuss in-depth the individual stages of the implementation written for INSIDE, and how it deals with common problems such as disocclusion and trailing artefacts.
Last edited: