Beruflich Dokumente
Kultur Dokumente
Kurt Akeley
CS248 Lecture 4
4 October 2007
http://graphics.stanford.edu/courses/cs248-07/
Review
Original:
Rendered:
f * g = f ×g f * g = f ×g
f ×g = f * g f ×g = f * g
x
*
= =
f(x) F(s)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Aliased reconstruction of a point (or line)
* x
sinc(x)
= =
f(x) F(s)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Reconstruction error (actually none!)
Original Signal
Phase matters!
Aliased
Reconstruction
CS248 Lecture 4 Kurt Akeley, Fall 2007
Sampling theory
In theory:
Required sinc function has
Negative lobes (displays can’t produce negative light)
Infinite extent (cannot be implemented)
In practice:
Reconstruction is done by a combination of
Physical display characteristics (CRT, LCD, …)
The optics of the human eye
Mathematical reconstruction (as is done, for
example, in high-end audio equipment) is not
practical at video rates.
* x
sinc(x)
= =
sinc(x)
f(x) F(s)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Band-limited unit disk
sinc(x)
* x
sinc(x)
= =
¥ ¥
f(x) F(s)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Almost-band-limited unit disk
sinc(x)
* x
sinc2(x)
= =
sinc3(x)
Finite extent!
f(x) F(s)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Equivalences
Pros
Almost eliminates aliasing due to undersampling
Allows pre-computation of expensive filters
Great image quality (with important caveats!)
Cons
Can’t handle interactions of primitives with area
Reconstruction is still a problem
alpha
alpha
Supports pre-computation
Simplifies distance calculation (square root in table)
Can compensate for reconstruction errors
Sampling and reconstruction go hand-in-hand
Point size
3
Xscreen frac bits
4 32K x 8 Fragment
Yscreen frac bits 8 Alpha
4
Pixel index
4
CS248 Lecture 4 Kurt Akeley, Fall 2007
Line tables get big!
Line width
3
Line slope
5
1M x 8 Fragment
Xscreen frac bits
4 8 Alpha
Yscreen frac bits
4
Pixel index
4
i = min(Afrag, (1-Apixel))
A’pixel = Apixel + I
C’pixel = Cpixel + i Cfrag
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE); // sum
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // blend
glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE); // saturate
Ideal Actual
* x
= =
f(x) F(s)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Frequencies are selectively attenuated
* *
= =
f(x) f(x)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Selective attenuation (cont.)
* *
= =
f(x) f(x)
CS248 Lecture 4 Kurt Akeley, Fall 2007
Modulation transfer function (MTF)
Image is pre-filtered
Cutoff is approximately 60 cpd
Cutoff is gradual – no ringing
Aliasing is avoided
Foveal cone density is 120 / degree
Cutoff matches retinal Nyquist limit
Vernier acuity is improved
Foveal resolution is 30 arcsec
Vernier acuity is 5-10 arcsec
Linespread blur includes more sensors
CS248 Lecture 4 Kurt Akeley, Fall 2007
Summary