You are on page 1of 36

CS 551/651: Advanced Computer Graphics

Antialiasing Continued: Prefiltering and Supersampling

David Luebke

8/19/2012

Recap: Antialiasing Strategies

Prefiltering: low-pass filter the signal before sampling

Pros:
Guaranteed

to eliminate aliasing Preserves all desired frequencies

Cons:
Expensive

Can

introduce ringing Doesnt fit most rendering algorithms

David Luebke

8/19/2012

Recap: Antialiasing Strategies

Supersampling: sample at higher resolution, then filter down

Pros:
Conceptually

simple Easy to retrofit existing renderers Works well most of the time

Cons:
High

storage costs Doesnt eliminate aliasing, just shifts Nyquist limit upwards
David Luebke 3 8/19/2012

Recap: Antialiasing Strategies

A-Buffer: approximate prefiltering of continuous signal by sampling

Pros:
Integrating

with scan-line renderer keeps storage costs

low Can be efficiently implemented with clever bitwise operations

Cons:
Still

basically a supersampling approach Doesnt integrate with ray-tracing


David Luebke 4 8/19/2012

Stochastic Sampling
Sampling theory tells us that with a regular sampling grid, frequencies higher than the Nyquist limit will alias Q: What about irregular sampling? A: High frequencies appear as noise, not aliases This turns out to bother our visual system less!

David Luebke

8/19/2012

Stochastic Sampling

An intuitive argument:

In stochastic sampling, every region of the image has a finite probability of being sampled Thus small features that fall between uniform sample points tend to be detected by non-uniform samples

David Luebke

8/19/2012

Stochastic Sampling

Integrating with different renderers:

Ray tracing:
It

is just as easy to fire a ray one direction as another

Z-buffer: hard, but possible


Notable

example: REYES system (?) Using image jittering is easier (more later)

A-buffer: nope
Totally

built around square pixel filter and primitive-tosample coherence

David Luebke

8/19/2012

Stochastic Sampling
Idea: randomizing distribution of samples scatters aliases into noise Problem: what type of random distribution to adopt? Reason: type of randomness used affects spectral characteristics of noise into which high frequencies are converted

David Luebke

8/19/2012

Stochastic Sampling

Problem: given a pixel, how to distribute points (samples) within it?

David Luebke

8/19/2012

Stochastic Sampling

Poisson distribution:

Completely random Add points at random until area is full. Uniform distribution: some neighboring samples close together, some distant

David Luebke

10

8/19/2012

Stochastic Sampling

Poisson disc distribution:

Poisson distribution, with minimum-distance constraint between samples Add points at random, removing again if they are too close to any previous points Very even-looking distribution

David Luebke

11

8/19/2012

Stochastic Sampling

Jittered distribution

Start with regular grid of samples Perturb each sample slightly in a random direction More clumpy or granular in appearance

David Luebke

12

8/19/2012

Stochastic Sampling

Spectral characteristics of these distributions:

Poisson: completely uniform (white noise). High and low frequencies equally present Poisson disc: Pulse at origin (DC component of image), surrounded by empty ring (no low frequencies), surrounded by white noise Jitter: Approximates Poisson disc spectrum, but with a smaller empty disc.

David Luebke

13

8/19/2012

Stochastic Sampling
Watt & Watt, p. 134 See Foley & van Dam, p 644-645

David Luebke

14

8/19/2012

Nonuniform Supersampling

Weve discussed two nonuniform sampling approaches

Adaptive supersampling:
Sample

(say) once per pixel, then supersample if intensity changes a lot multiple samples per pixel, but not on a uniform

Stochastic supersampling:
Use

grid

Can we filter nonuniform supersampled images?


15 8/19/2012

David Luebke

Nonuniform Supersampling

Recall: convolution I of filter h with image function I is given by:

I(x,y) = I(i, j) h(x-i, y-j) Can we use this equation for nonuniform sampling? Implicit in this equation is a normalizing factor: we assume the filter weights sum to unity
David Luebke 16 8/19/2012

Nonuniform Supersampling

Pixel
David Luebke 17 8/19/2012

Nonuniform Supersampling

Sampling Grid
David Luebke 18 8/19/2012

Nonuniform Supersampling

Polygon
David Luebke 19 8/19/2012

Nonuniform Supersampling

Adaptive Sampling
David Luebke 20 8/19/2012

Nonuniform Supersampling

Problem:

Many more purple samples than white samples But final pixel actually more white than purple! Simple filtering will not handle this correctly

Final Samples
David Luebke 21 8/19/2012

Nonuniform Supersampling

Approximate answer: weighted average filter

Divide total value of samples X filter by total value of filter at sample points:

I(i, j) h(x-i, y-j) I(x,y) = h(x-i, y-j)

David Luebke

22

8/19/2012

Nonuniform Supersampling

Correct answer: multistage filtering

Use weighted-average filters in cascade, sequentially applying filters with lower and lower cutoff frequencies

David Luebke

23

8/19/2012

Nonuniform Supersampling

Real-world answer: ignore the problem

Keep random components small compared to filter width Use standard supersampling filter Cook 87 (REYES) uses 4x4 jittered supersampling

David Luebke

24

8/19/2012

Antialiasing and Texture Mapping


We may want to apply antialiasing techniques to the texture mapping process separately from the rest of the rendering process Why?

David Luebke

25

8/19/2012

Antialiasing and Texture Mapping

Texture mapping is uniquely harder

Coherent textures present pathological artifacts Correct filter shape changes


Textures are known ahead of time They can thus be prefiltered

Texture mapping is uniquely easier


David Luebke

26

8/19/2012

Antialiasing and Texture Mapping

More on texture problems

Coherent texture frequencies become infinitely high with increasing distance


Ex:

checkerboard receding to horizon

Unfiltered textures lead to compression


Ex:

pixel covers entire checkerboard Unfiltered mapping: pixel is black or white Moving checkerboard flashing pixels

David Luebke

27

8/19/2012

Antialiasing and Texture Mapping


Problem: a square pixel on screen becomes a curvilinear quadrilateral in texture map (see W&W, p 140) The coverage and area of this shape change as a function of the mapping Most texture antialiasing algorithms approximate this shape somehow

David Luebke

28

8/19/2012

Recap: Antialiasing and Texture Mapping

Mip-mapping

MIP = Multim in Parvo (many things in a small place) Ignores shape change of inverse pixel But allows size to vary

Idea: store texture as a pyramid of progressively lower-resolution images, filtered down from original

David Luebke

29

8/19/2012

Antialiasing: Mip-Mapping

Depth of Mip-Map
David Luebke 30 8/19/2012

Antialiasing: Mip Mapping

R G B

R G R G B B
G B
31 8/19/2012

David Luebke

Antialiasing: Mip Mapping


Distant textures use higher levels of the mipmap Thus, the texture map is prefiltered Thus, reduced aliasing!

David Luebke

32

8/19/2012

Antialiasing: Mip Mapping

Which level of mip-map to use?

Think of mip-map as 3-D pyramid Index into mip-map with 3 coordinates: u, v, d (depth)

Q: What does d correspond to in the mip-map? A: size of the filter

David Luebke

33

8/19/2012

Antialiasing: Mip Mapping

The size of the filter (i.e., d in the mip-map) depends on the pixel coverage area in the texture map

In general, treat d as a continuous value Blend between nearest mip-map level using linear interpolation

Q: What is tri-linear interpolation?

David Luebke

34

8/19/2012

Antialiasing: Mip Mapping


Q: Whats wrong with the mip-map approach to prefiltering texture? A: Assumes pixel maps to square in texture space More sophisticated inverse pixel filters (see F&vD p 828):

Summed area tables Elliptical weighted average filtering

David Luebke

35

8/19/2012

The End

David Luebke

36

8/19/2012

You might also like