Antialiasing

Given a screen of a fixed size, creating an image is accomplished by sampling each pixel one or more times in order to determine what can be seen ``through'' that pixel by the camera. A pixel thus covers a square area of the image plane, not just a single point.

If a pixel is not sampled at the proper rate, aliasing will result. Aliasing usually appears as ``jaggies'' or ``stair steps'' in the image. In order to reduce these and other artifacts, provides an adaptive jittered antialiasing scheme that attempts to detect where increased sampling rates are needed. In jittered sampling, the location at which a sample is taken is perturbed by a random amount. This perturbation reduces aliasing but adds noise to the image. Appendix B describes how jittered time sampling is implemented in .

The adaptive sampling scheme implemented in begins by sampling each pixel on the current scanline once. For each pixel on the scanline, the contrast between it and its four immediate neighbors is computed. If this contrast is greater than a user-specified maximum in any color channel, the pixel and its neighbors are all supersampled by firing an additional numsamples2 - 1 rays through those pixels that have not already been supersampled. This process is repeated for the current scanline until a pass is made without any pixel being supersampled.


\begin{defkey}{contrast}{{\em redcont greencont bluecont}}
Set the maximum allo...
...d.
The contrast test is applied to each color
channel separately.
\end{defkey}
The default maximum contrast values for the red, green, and blue channels are 0.25, 0.2, and 0.4, respectively.


\begin{defkey}{sample}{{\em n} [{\tt nojitter}]}
Use $n^{2} $\ samples when per...
...er} is specified, sample locations
and times will not be jittered.
\end{defkey}
By default, 32 jittered samples are taken.

A given set of sample values must be filtered in order to assign a color to a pixel. Ideally, when performing filtering for a specific pixel, the filter will consider samples from neighboring regions. In , the filtering applied to a pixel makes use of samples taken for that pixel alone. However, one may increase the size of the filter that is applied in order to approximate the results a more robust filtering scheme.


\begin{defkey}{filter}{{\em type} [{\em width}]}
Use the indicated filter type ...
...lter types are {\tt gauss} (Gaussian)
and {\tt box} (the default).
\end{defkey}
The default filter width is 1.0 for a box filter, 1.8 for a Gaussian filter. The filter and pixel centers always coincide. When sampling a pixel, samples are taken over the area of the pixel filter, which is not necessarily the same as the area of the pixel itself.

Jittered sampling is used in to sample extended light sources as well. A total of samples2 samples are taken of each extended light source in order to determine the extent of shadowing.