Sunteți pe pagina 1din 67

Aliasing & Antialiasing

Aaron Bloomfield
CS 445: Introduction to Graphics
Fall 2006
(Slide set originally by David Luebke)
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

2
Antialiasing
 Aliasing: signal processing term with very specific
meaning
 Aliasing: computer graphics term for any unwanted
visual artifact
 Antialiasing: computer graphics term for avoiding
unwanted artifacts
 We’ll tackle these in order

3
No anti-aliasing 4
5 sample anti-aliasing 5
16 sample anti-aliasing6
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

7
Signal Processing
 Raster display: regular sampling of a continuous
function (Really?)
 Think about sampling a 1-D function:

8
Signal Processing
 Sampling a 1-D function:

9
Signal Processing
 Sampling a 1-D function:

10
Signal Processing
 Sampling a 1-D function:
 What do you notice?

11
Signal Processing
 Sampling a 1-D function: what do you notice?
 Jagged, not smooth

12
Signal Processing
 Sampling a 1-D function: what do you notice?
 Jagged, not smooth
 Loses information!

13
Signal Processing
 Sampling a 1-D function: what do you notice?
 Jagged, not smooth
 Loses information!
 What can we do about these?
 Use higher-order reconstruction
 Use more samples
 How many more samples?

14
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

15
The Sampling Theorem
 Obviously, the more samples we take the better
those samples approximate the original function
 The Nyquist sampling theorem:
A continuous bandlimited function can be completely represented
by a set of equally spaced samples, if the samples occur at more
than twice the frequency of the highest frequency component of the
function

16
The Sampling Theorem
 In other words, to adequately capture a function
with maximum frequency F, we need to sample it
at frequency N = 2F.
 N is called the Nyquist limit.

 The Nyquist sampling theorem applied to CDs


 Most humans can hear to 20 kHz
 Some (like me!) to 22 kHz
 CDs are sampled at 44.1 kHz
 Although not twice the “highest frequency component”, it is twice
the “highest frequency component” that can be (generally) heard

17
The Sampling Theorem
 An example: sinusoids

18
The Sampling Theorem
 An example: sinusoids

19
Fourier Theory
 All our examples have been sinusoids
 Does this help with real world signals? Why?
 Fourier theory lets us decompose any signal into
the sum of (a possibly infinite number of) sine
waves

20
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

21
Prefiltering
 Eliminate high frequencies before sampling (Foley
& van Dam p. 630)
 Convert I(x) to F(u)
 Apply a low-pass filter
 A low-pass filter allows low frequencies through, but attenuates
(or reduces) high frequencies
 Then sample. Result: no aliasing!

22
Prefiltering

23
Prefiltering

24
Prefiltering
 So what’s the problem?
 Problem: most rendering algorithms generate
sampled function directly
 e.g., Z-buffer, ray tracing

25
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

26
Supersampling
 The simplest way to reduce aliasing artifacts is
supersampling
 Increase the resolution of the samples
 Average the results down
 For now, we’ll assume that the samples are evenly
spaced
 In the “Stochastic Sampling” section, we’ll see other
ways of doing it
 Sometimes called postfiltering
 Create virtual image at higher resolution than the final
image
 Apply a low-pass filter
 Resample filtered image 27
Supersampling: Limitations
 Q: What practical consideration hampers super-
sampling?
 A: Storage goes up quadratically
 Q: What theoretical problem does supersampling
suffer?
 A: Doesn’t eliminate aliasing! Supersampling
simply shifts the Nyquist limit higher

28
Supersampling: Worst Case
 Q: Give a simple scene containing infinite
frequencies
 A: A checkered ground plane receding into infinity
 See next slide…

29
30
Supersampling
 Despite these limitations, people still use super-
sampling (why?)
 So how can we best perform it?

31
Supersampling
 The process:
1. Create virtual image at higher resolution than the final
image
2. Apply a low-pass filter
3. Resample filtered image

32
Supersampling: Step 1
 Create virtual image at higher resolution than the
final image
 This is easy

33
Supersampling: Step 2
 Apply a low-pass filter
 Convert to frequency
domain
 Multiply by a box
function
 Expensive! Can we
simplify this?
 Recall: multiplication
in frequency equals
convolution in space, so…
 Just convolve initial sampled image with the FT of a box
function
 Isn’t this a lot of work?
34
Supersampling: Digital Convolution
 In practice, we combine steps 2 & 3:
 Create virtual image at higher resolution than the final
image
 Apply a low-pass filter
 Resample filtered image
 Idea: only create filtered image at new sample
points
 I.e., only convolve filter with image at new points

35
Supersampling: Digital Convolution
 Q: What does convolving a filter with an image
entail at each sample point?
 A: Multiplying and summing values
 Example:
1 2 1
= 2 4 2
1 2 1
1 2 1
1 2 1
2 4 2
 = 2 4 2
1 2 1


1 2 1

36
Supersampling
 Typical supersampling algorithm:
 Compute multiple samples per pixel
 Combine sample values for pixel’s value using simple
average
 Q: What filter does this equate to?
 A: Box filter -- one of the worst!
 Q: What’s wrong with box filters?
 Passes infinitely high frequencies
 Attenuates desired frequencies

37
Supersampling
 Common filters:
 Truncated sinc
 sinc(x) = sin(x)/x
 Box
 Triangle
 Guassian

38
Supersampling In Practice
 Sinc function: ideal but impractical
 One approximation: sinc2
 Another: Gaussian falloff
 Q: How wide (what res) should filter be?
 A: As wide as possible (duh)
 In practice: 3x3, 5x5, at most 7x7
 In other words, the filter is larger than the final pixel
 So we are using the values of neighboring pixels
 This creates a better visual effect

39
Supersampling: Summary
 Supersampling improves aliasing artifacts by
shifting the Nyquist limit
 It works by calculating a high-res image and
filtering down to final res
 “Filtering down” means simultaneous convolution
and resampling
 This equates to a weighted average
 Wider filter  better results  more work

40
Summary So Far
 Prefiltering
 Before sampling the image, use a low-pass filter to
eliminate frequencies above the Nyquist limit
 This blurs the image…
 But ensures that no high frequencies will be
misrepresented as low frequencies

41
Summary So Far
 Supersampling
 Sample image at higher resolution than final image, then
“average down”
 “Average down” means multiply by low-pass function in
frequency domain
 Which means convolving by that function’s FT in space
domain
 Which equates to a weighted average of nearby
samples at each pixel

42
Summary So Far
 Supersampling cons
 Doesn’t eliminate aliasing, just shifts the Nyquist limit
higher
 Can’t fix some scenes (e.g., checkerboard)
 Badly inflates storage requirements
 Supersampling pros
 Relatively easy
 Often works all right in practice
 Can be added to a standard renderer

43
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

44
Antialiasing in the Continuous Domain
 Problem with prefiltering:
 Sampling and image generation inextricably linked in
most renderers
 Z-buffer algorithm
 Ray tracing
 Why?
 Still, some approaches try to approximate effect of
convolution in the continuous domain

45
Antialiasing in the Continuous Domain

Pixel
Grid

Polygons Filter kernel


46
Antialiasing in the Continuous Domain
 The good news
 Exact polygon coverage of the filter kernel can be
evaluated
 What does this entail?
 Clipping
 Hidden surface determination

47
Antialiasing in the Continuous Domain
 The bad news
 Evaluating coverage is very expensive
 The intensity variation is too complex to integrate over
the area of the filter
 Q: Why does intensity make it harder?
 A: Because polygons might not be flat- shaded
 Q: How bad a problem is this?
 A: Intensity varies slowly within a pixel, so shape changes are
more important

48
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

49
Catmull’s Algorithm

 Find fragment A2
areas
A1
 Multiply by
fragment colors
 Sum for final
pixel color

AB A3

50
Catmull’s Algorithm
 First real attempt to filter in continuous domain
 Very expensive
 Clipping polygons to fragments
 Sorting polygon fragments by depth (What’s wrong with
this as a hidden surface algorithm?)
 Equates to box filter (Is that good?)

51
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

52
The A-Buffer
 Idea: approximate continuous filtering by subpixel
sampling
 Summing areas now becomes simple

53
The A-Buffer
 Advantages:
 Incorporating into scanline renderer reduces storage
costs dramatically
 Processing per pixel depends only on number of visible
fragments
 Can be implemented efficiently using bitwise logical ops
on subpixel masks

54
The A-Buffer
 Disadvantages
 Still basically a supersampling algorithm
 Not a hardware-friendly algorithm
 Lists of potentially visible polygons can grow without limit
 Work per-pixel non-deterministic

55
Recap: Antialiasing Strategies
 Supersampling: sample at  A-Buffer: approximate pre-
higher resolution, then filter filtering of continuous
down signal by sampling
 Pros:  Pros:
 Conceptually simple  Integrating with scan-line
 Easy to retrofit existing renderer keeps storage
renderers costs low
 Works well most of the time  Can be efficiently
implemented with clever
 Cons:
bitwise operations
 High storage costs
 Cons:
 Doesn’t eliminate aliasing,
just shifts Nyquist limit  Still basically a super-
upwards sampling approach
 Doesn’t integrate with ray-
tracing

56
Overview
 Introduction
 Signal Processing
 Sampling Theorem
 Prefiltering
 Supersampling
 Continuous Antialiasing
 Catmull's Algorithm
 The A-Buffer
 Stochastic Sampling

57
Stochastic Sampling
 Stochastic: involving or containing a random
variable
 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!

58
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

59
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-to-sample
coherence

60
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

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

Grid Random Poisson Disc Jitter

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

63
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

64
Stochastic Sampling
 Jittered distribution
 Start with regular grid of samples
 Perturb each sample slightly in a
random direction
 More “clumpy” or granular in appearance

65
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.

66
Stochastic Sampling
 Watt & Watt, p. 134
 See Foley & van Dam, p 644-645
 Should have images next time

67

S-ar putea să vă placă și