Lecture 003

Rasterization Pipeline

Why use triangle:

• can approximate any shape

• always planar, with well-defined normal vector

• easy to interpolate data at corners (blend color using barycentric coordinates)

Two Questions:

1. Coverage: what pixel on screen does a triangle cover
2. Occlusion: if we have multiple triangles cover the same pixel, which one is closest to the camera

Reconstruction

Aliasing: When the frequency is higher than sampling rate, then reconstructed frequency can only be as high as sampling rate. (High frequencies in the original signal masquerade as low frequencies after reconstruction due to undersampling)

Sinc Filter

Nyquist-Shannon Theorem: A band-limited signal (ie. no frequencies above threshold $w_0$) can be perfectly reconstructed if sampled with period $T = \frac{1}{2} w_0$ and reconstruct (interpolation) using $\text{sinc} = \frac{1}{\pi x}\sin(\pi x)$ filter.

There are two problems with $\text{sinc}$ filter

1. Encode a hard edge (piecewise discontinuity in the triangle edge) needs infinite series of frequencies.
2. If for each pixel we use a $\text{sinc}$, then every pixel can affect every other pixel, therefore computational power is to expensive.

Implementation Details

Incremental Traversal: Check pixel near each other

Parallel Traversal:

1. bound a triangle by a box
2. check every pixel in the box in parallel

Coarse to Fine:

1. divide big box region into smaller boxes
2. check if the box overlaps with triangle
3. if overlap some, we subdivide more
4. if no overlap, all pixels in boxes are turned off
5. if all overlap, all pixels in boxes are turned on

Note: Coarse to Fine can also be improved with Incremental Traversal since boxes near each other share similar pixel.

Table of Content