The simplest TAA implementation
The best way to understand this technique is to build a basic implementation missing some important steps and to have a blurry or jittery rendering as it is easy to do.
The basic ingredients for this technique are simple if done correctly, but each must be done in a precise way. We will first add jittering to the camera so that we can render slightly different points of view of the scene and gather additional data.
We will then add motion vectors so that we can read the previous frame color information in the right place. Finally, we will reproject, or simply put, read the history frame color data and combine it with current frame data.
Let us see the different steps.
Jittering the camera
The objective of this step is to translate the projection camera by a small amount in both the x and y axes.
We have added some utility code in the GameCamera
class:
void GameCamera::apply_jittering( f32 x, f32 y ) { // Reset...