116 7.ASpatialandTemporalCoherenceFrameworkforReal‐TimeGraphics
The last stage of antialiasing is the downsampling process, which generates
stable, artifact-free, edge-smoothed images. Each pixel of the final frame buffer
is an average of its subsamples in the FSAA buffer. Therefore, we can easily re-
construct the valid value by looking back in time for subsamples. In our experi-
ment, we wanted to achieve 4X FSAA. We rendered each frame with a subpixel
offset, which can be achieved by manipulating the projection matrix. We as-
sumed that four consecutive frames hold the different subsamples that would
normally be available in 4X FSAA, and we used reprojection to integrate those
subsamples over time. When a sample was not valid, due to unocclusion, we re-
jected it. When misses occurred, we could also perform bilateral filtering with
valid samples to leverage spatial coherency.
Our solution proved to be efficient and effective, giving results comparable
to 4X FSAA for near-static scenes and giving results of varying quality during
high-frequency motion. However, pixels in motion were subject to motion blur,
which effectively masked any artifacts produced by our antialiasing solution. In
general, the method definitely proved to be better than 2X FSAA and slightly
worse than 4X FSAA since some high-frequency detail was lost due to repeated
resampling. Furthermore, the computational cost was insignificant compared to
standard FSAA, not to mention that it has lower memory requirements (only one
additional full-resolution buffer for caching). We would like to improve upon
resampling schemes to avoid additional blurring.
High‐QualitySpatiotemporalReconstruction
We would like to present another concept to which the spatiotemporal framework
can be applied. It is similar to the one used in antialiasing. Suppose we want to
draw a full-resolution frame. During each frame, we draw a
n-resolution buffer,
called the refresh buffer, with a different pixel offset. We change the pattern for
each frame in order to cover the full frame of information in n frames. The final
image is computed from the refresh buffer and a high-resolution history buffer.
When the pixel being processed is not available in the history or refresh buffer,
we resort to bilateral upsampling from coarse samples. See Figure 7.12 for an
overview of the algorithm. This solution speeds up frame computation by a factor
of n, producing a properly resampled high-resolution image, with the worst-case
per-pixel resolution being
n of the original. Resolution loss would be mostly
visible near screen boundaries and near fast-moving objects. However, those arti-
facts may be easily masked by additional processing, like motion blur. We found
that setting 4n generally leads to an acceptable solution in terms of quality and
performance. However, a strict rejection and bilateral upsampling policy must be