By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Guerrilla games have issued a statement about he process. It's a bit more involved than I thought, it actually uses 3 frames to calculate the new frame.

http://www.killzone.com/en_GB/blog/news/2014-03-06_regarding-killzone-shadow-fall-and-1080p.html

Q: So how does “temporal reprojection” work and what’s the difference with up-scaling?

Up-scaling is a spatial interpolation filter. When up-scaling an image from one resolution to another, new pixels are added by stretching the image in X/Y dimension. The values of the new pixels are picked to lie in between the current values of the pixels. This gives a bigger, but slightly blurrier picture.

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.


Cool technique, but I wonder at what point it becomes cheaper to render the whole frame.