david luebke 1 4/28/2015 aliasing & antialiasing

42
David Luebke 1 06/17/22 Aliasing & Antialiasing

Upload: selina-hoggatt

Post on 15-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 1 04/21/23

Aliasing & Antialiasing

Page 2: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 2 04/21/23

Recap: Aliasing

● Sampling a function

= multiplying I(x) by sampling fn Sx

= convolving F(u) by sampling fn S1/x

= copying F(u) at regular intervals● If the copies of F(u) overlap, high frequencies “fold

over”, appearing as lower frequencies● This is known as aliasing

Page 3: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 3 04/21/23

Prefiltering

● Eliminate high frequencies before sampling (Foley & van Dam p. 630)■ Convert I(x) to F(u)■ Apply a low-pass filter (e.g., multiply F(u) by a box

function)■ Then sample. Result: no aliasing!

● So what’s the problem?

Page 4: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 4 04/21/23

Prefiltering

● Eliminate high frequencies before sampling (Foley & van Dam p. 630)■ Convert I(x) to F(u)■ Apply a low-pass filter (e.g., multiply F(u) by a box

function)■ Then sample. Result: no aliasing!

● Problem: most rendering algorithms generate sampled function directly■ e.g., Z-buffer, ray tracing

Page 5: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 5 04/21/23

Supersampling

● The simplest way to reduce aliasing artifacts is supersampling ■ Increase the resolution of the samples■ Average the results down

● Sometimes called postfiltering■ Create virtual image at higher resolution than the final

image■ Apply a low-pass filter■ Resample filtered image

Page 6: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 6 04/21/23

Supersampling: Limitations

● Q: What practical consideration hampers supersampling?

● A: Storage goes up quadratically● Q: What theoretical problem does supersampling

suffer?● A: Doesn’t eliminate aliasing! Supersampling

simply shifts the Nyquist limit higher

Page 7: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 7 04/21/23

Supersampling: Worst Case

● Q: Give a simple scene containing infinite frequencies

● A: A checkered ground plane receeding into infinity● Show Watt & Watt, Figure 4.9

Page 8: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 8 04/21/23

Supersampling

● Despite these limitations, people still use supersampling (why?)

● So how can we best perform it?

Page 9: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 9 04/21/23

Supersampling

● The process:■ Create virtual image at higher resolution than the final

image■ Apply a low-pass filter■ Resample filtered image

Page 10: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 10 04/21/23

Supersampling

● Create virtual image at higher resolution than the final image■ This is easy

Page 11: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 11 04/21/23

Supersampling

● 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?

Page 12: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 12 04/21/23

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

Page 13: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 13 04/21/23

Supersampling:Digital Convolution

● Q: What does convolving a filter with an image entail at each sample point?

● A: Multiplying and summing values● Example (also F&vD p 642):

1 2 12 4 21 2 1

1 2 12 4 21 2 1=1 2 12 4 21 2 1=…

Page 14: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 14 04/21/23

Supersampling

● Q: What filter should we use in space to effect multiplying by a box function in frequency?

● A: The sinc function (sin(x) / x)● Q: Why is this hard?

■ Sinc function has infinite support■ Sinc function has negative lobes

Page 15: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 15 04/21/23

Supersampling

● Common filters:■ Truncated sinc■ Box■ Triangle■ Guassian

● What do the frequency spectra of each of these filters look like?

● A: see F&vD, p. 634-635

Page 16: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 16 04/21/23

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

Page 17: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 17 04/21/23

SupersamplingIn Practice

● Sinc function: ideal but impractical● One approximation: sinc2 (=what?)● Another: Guassian falloff● Q: How wide (what res) should filter be?● A: As wide as possible (duh)● In practice: 3x3, 5x5, at most 7x7

Page 18: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 18 04/21/23

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

Page 19: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 19 04/21/23

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

Page 20: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 20 04/21/23

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

Page 21: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 21 04/21/23

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

Page 22: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 22 04/21/23

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

Page 23: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 23 04/21/23

Antialiasing in the Continuous Domain

PixelGrid

Polygons Filter kernel

Page 24: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 24 04/21/23

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

Page 25: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 25 04/21/23

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

Page 26: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 26 04/21/23

Catmull’s Algorithm

AB

A1

A2

A3

● Find fragment areas● Multiply by fragment

colors● Sum for final pixel

color

Page 27: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 27 04/21/23

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?)

Page 28: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 28 04/21/23

The A-Buffer

● Idea: approximate continuous filtering by subpixel sampling● Summing areas now becomes simple

Page 29: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 29 04/21/23

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

Page 30: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 30 04/21/23

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

Page 31: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 31 04/21/23

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○ Doesn’t eliminate aliasing, just shifts Nyquist limit upwards

Page 32: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 32 04/21/23

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○ Doesn’t integrate with ray-tracing

Page 33: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 33 04/21/23

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!

Page 34: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 34 04/21/23

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

Page 35: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 35 04/21/23

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

Page 36: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 36 04/21/23

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

Page 37: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 37 04/21/23

Stochastic Sampling

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

Page 38: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 38 04/21/23

Stochastic Sampling

● Poisson distribution: ■ Completely random■ Add points at random until area is full.■ Uniform distribution: some neighboring samples close

together, some distant

Page 39: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 39 04/21/23

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

Page 40: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 40 04/21/23

Stochastic Sampling

● Jittered distribution■ Start with regular grid of samples■ Perturb each sample slightly in a random direction■ More “clumpy” or granular in appearance

Page 41: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 41 04/21/23

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.

Page 42: David Luebke 1 4/28/2015 Aliasing & Antialiasing

David Luebke 42 04/21/23

Stochastic Sampling

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