# 7 Sampling and Reconstruction

Although the final output of a renderer like `pbrt` is a 2D
grid of colored pixels, incident radiance is actually a continuous function
defined over the film plane. The manner in which the discrete pixel values
are computed from this continuous function can noticeably affect the
quality of the final image generated by the renderer; if this process is
not performed carefully, artifacts will be present. Conversely, if it is
performed well, a relatively small amount of additional computation to this
end can substantially improve the quality of the rendered images.

This chapter starts by introducing *sampling theory*—the theory of
taking discrete sample values from functions defined over continuous
domains and then using those samples to reconstruct new functions that are
similar to the original. Building on principles of sampling theory as well
as ideas from low-discrepancy point sets, which are a particular type of
well-distributed sample points, the `Sampler`s defined in this chapter
generate -dimensional sample vectors in various ways.
Five `Sampler` implementations are described in
this chapter, spanning a variety of approaches to the sampling problem.

This chapter concludes with the `Filter` class and the `Film`
class. The `Filter` is used to determine how multiple samples near each
pixel are blended together to compute the final pixel value, and the
`Film` class accumulates image sample contributions into pixels of
images.