lecture07.ppt

Download Report

Transcript lecture07.ppt

CS 551/651:
Advanced Computer Graphics
Antialiasing Continued:
Prefiltering and Supersampling
David Luebke
1
7/27/2016
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”
 Doesn’t fit most rendering algorithms
David Luebke
2
7/27/2016
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
David Luebke
3
7/27/2016
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
David Luebke
4
7/27/2016
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
5
7/27/2016
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
6
7/27/2016
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
7
7/27/2016
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
7/27/2016
Stochastic Sampling

Problem: given a pixel, how to distribute
points (samples) within it?
David Luebke
9
7/27/2016
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
7/27/2016
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
7/27/2016
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
7/27/2016
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
7/27/2016
Stochastic Sampling
Watt & Watt, p. 134
 See Foley & van Dam, p 644-645

David Luebke
14
7/27/2016
Nonuniform Supersampling

We’ve discussed two nonuniform sampling
approaches

Adaptive supersampling:
 Sample
(say) once per pixel, then supersample if
intensity changes a lot

Stochastic supersampling:
 Use
multiple samples per pixel, but not on a uniform
grid

Can we filter nonuniform supersampled
images?
David Luebke
15
7/27/2016
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
7/27/2016
Nonuniform Supersampling
Pixel
David Luebke
17
7/27/2016
Nonuniform Supersampling
Sampling Grid
David Luebke
18
7/27/2016
Nonuniform Supersampling
Polygon
David Luebke
19
7/27/2016
Nonuniform Supersampling
Adaptive Sampling
David Luebke
20
7/27/2016
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
7/27/2016
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
7/27/2016
Nonuniform Supersampling

Correct answer: multistage filtering

Use weighted-average filters in cascade,
sequentially applying filters with lower and lower
cutoff frequencies
David Luebke
23
7/27/2016
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
7/27/2016
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
7/27/2016
Antialiasing and
Texture Mapping

Texture mapping is uniquely harder



Coherent textures present pathological artifacts
Correct filter shape changes
Texture mapping is uniquely easier


Textures are known ahead of time
They can thus be prefiltered
David Luebke
26
7/27/2016
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
7/27/2016
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
7/27/2016
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
7/27/2016
Antialiasing: Mip-Mapping
Depth of Mip-Map
David Luebke
30
7/27/2016
Antialiasing: Mip Mapping
R G
R G
B B
R
R G
B
David Luebke
G
B
31
7/27/2016
Antialiasing: Mip Mapping
Distant textures use higher levels of the
mipmap
 Thus, the texture map is prefiltered
 Thus, reduced aliasing!

David Luebke
32
7/27/2016
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
7/27/2016
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
7/27/2016
Antialiasing: Mip Mapping
Q: What’s 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
7/27/2016
The End
David Luebke
36
7/27/2016