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