Motivation
• The main goal of Computer Graphics is to generate 2D images • 2D images are continuous 2D functions (or signals) – monochrome f(x,y) –or color r(x,y), g(x,y), b(x,y) • These functions are represented by a 2D set of discrete samples (pixels) • Sampling can cause artifacts (=Aliasing) 2
7. Anti-Aliasing
Examples - Moiré Patterns Examples - Jaggies
• Staircase effect at borders
3 4
7. Anti-Aliasing 7. Anti-Aliasing
Temporal Aliasing Aliasing in Computer Graphics
• Aliasing effects: – loss of detail time –Moirépatterns –jaggies real (continuous) motion • Appear in – texture mapping – scan conversion of geometry sampled (perceived) motion – raytracing
5 6
7. Anti-Aliasing 7. Anti-Aliasing Sampling and Reconstruction Example – Point Sampling
7 8
7. Anti-Aliasing 7. Anti-Aliasing
Signal Processing Spectrum of an Image
• Aliasing is well understood in signal processing •What is usignal of an image f(x,y)? • Interpret images as 2D signals •Use Fourier analysis (1D first) • Aliasing = sampling of L2-functions below the •Represent f(x) as a sum of harmonic waves: Nyquist frequency uNyquist = 2 usignal ∞ f(x) = ∫ F(u)e j 2πu x du −∞ • The amplitudes F(u) of waves with frequency u (spectrum) are computed as ∞ F{}f(x) = F(u) = f(x)e− j 2πu x dx 9 ∫ 10 −∞
7. Anti-Aliasing 7. Anti-Aliasing
Avoiding Aliasing 1D Fourier Transform
•Let W be the maximum u for which |F(u)|>0
• Either choose usampling > 2W • Fourier transform
• Or zero all F(u) for u > ½ usampling ∞ F{}f(x) = F(u) = f(x)e− j 2πu x dx • i.e. low pass filter the signal ∫ −∞ • Smoothing of image before sampling! •Inverse transform • e.g. Mip mapping: ∞ F -1{}F(u) = f(x) = ∫ F(u)e j 2πu x du −∞
11 12 decreasing sampling rate, increased smoothing 7. Anti-Aliasing 7. Anti-Aliasing 1D Discrete Fourier Transform 2D Fourier Transforms
∞ ∞ j 2π k i 1 N −1 − − j 2π(u x+v y) • Discrete transform F(k) = ∑ f(i)e N F{}f(x,y) = F(u,v) = ∫∫f(x,y)e dx dy N i=0 −∞−∞ ∞ ∞ -1 j 2π(u x v y) N −1 j 2π k i F {}F(u,v) = f(x,y) = f(x,y)e + du dv N ∫∫ • Discrete inverse f(i) = ∑ F(k)e −∞−∞ k =0 • Discrete setting x = i ⋅∆x, u x v y u = k ⋅ ∆u 1 M −1N −1 − j 2π( + ) F(u,v) = f(x,y)e M N 1 M N ∑∑ • Heisenberg resolution bounds ∆x ⋅ ∆u ≥ x=0 y=0 4π u x v y M −1 N −1 j 2π( + ) f(x,y) = F(u,v)e M N 13 ∑∑ 14 u=0 v=0 7. Anti-Aliasing 7. Anti-Aliasing
Example: Reconstruction 2D Fourier Transforms
rect(x,y) sinc(x,y) f(i∆x) g(x)
x x ∆x reconstruction filter
f(x) N f(x) = ∑ f (i∆x)⋅ g(x − i∆x)⋅∆x sine cardinal: x i=1
⎧1 x = 0 sinc(x) = ⎨ ⎩sin(x) / x otherwise 15 16
7. Anti-Aliasing 7. Anti-Aliasing
Convolutions Convolutions
∞ f(x)*g(x) = ∫ f(α)g(x − α)dα −∞ f(x) δ(x)
x x
f(x) g(x) ∞ f(x)*δ(x) = f(α)δ(x − α)dα = f(x) x x ∫ −∞ • Discrete setting f(α) g(x-α) M −1 f(x)*g(x) = ∑ f(m)g(x − m) α m=0 x 17 18
7. Anti-Aliasing 7. Anti-Aliasing Convolutions Convolutions
•2D convolution as a separable TP-extension • Convolution theorem
∞ ∞ f(x)*g(x) ≡ F(u)G(u) f(x,y)*g(x,y) = ∫∫f(α, β) g(x − α,y − β)dα dβ −∞−∞ f(x)g(x) ≡ F(u)*G(u)
• Discrete form • For function of finite energy (L2) M −1N −1 f(x,y)*g(x,y) = f(m,n) g(x − m,y − n) ∞ ∑∑ 2 2 m=0 n=0 f = f,f = ∫ f(x) dx < ∞ −∞ 19 20
7. Anti-Aliasing 7. Anti-Aliasing
Aliasing Aliasing
• Sampling = multiplication with sequence of • Multiplication converts to convolution in delta functions (impulse train) Fourier domain
21 22
7. Anti-Aliasing 7. Anti-Aliasing
Aliasing Aliasing
• Convolution with sequence of delta functions • Overlap of Fourier transforms leads to aliasing = periodization
23 24
7. Anti-Aliasing 7. Anti-Aliasing Aliasing Aliasing-free Reconstruction
Spatial Domain Frequency Domain Spatial Domain Frequency Domain • Reconstruction = Low pass filtering
25 26
7. Anti-Aliasing 7. Anti-Aliasing
Occurrence of Aliasing 2D Sampling
Spatial Domain Frequency Domain Spatial Domain Frequency Domain • 2D impulse fields ∞ ∞ f(x,y)δ(x − x ,y − y )dx dy = f(x ,y ) ∫∫ 0 0 0 0 −∞−∞
27 28
7. Anti-Aliasing 7. Anti-Aliasing
Fourier Domain Reconstruction – Antialiasing
• Periodic spectrum of band limited sampled function • Windowing spectrum using filters •Simple
f(x,y) = G(u,v)[S(u,v)*F(u,v)]
where ⎧1 (u,v) within Bounding Box of R G(u,v) = ⎨ ⎩0 else
29 30
7. Anti-Aliasing 7. Anti-Aliasing 2D Sampling Theorem
• Sampling rate is bounded by 1 ∆u = N ∆x 1 ∆v = N ∆y • Finite, discrete setting 1 ∆x ≤ 2Wu 1 ∆y ≤ 31 32 2Wv 7. Anti-Aliasing 7. Anti-Aliasing
Spectral Analysis Geometry Antialiasing Filters in Practice
• Properties of a good low pass filter
33 34
7. Anti-Aliasing 7. Anti-Aliasing
Antialiasing Filters Antialiasing Filters
• B-Spline filters of order n • Gaussian filters 2 2 G (ω) = e−σ ω / 2 σ 2 1 2 2 ⎧1 x ≤ 1 g (x) = e−x / 2 σ ↔ ⎪ 2 sin ω/ 2 sin π f σ 2 2 π g1(x) = ⎨ ↔ = = sin c f σ 2 π = g (ω) 0 x > 1 ω/ 2 π f 1/σ 2 ⎩⎪ 2 σ • Sinc-filter • Increase order by repeated convolution ωc x sin(ωc x) ω ⎧1 ω ≤ ωc g (x) = g (x)*g (x)*…*g (x) ↔ sin c n f sinc( ) = ↔ g ( ) = ⎨ n 1 1 1 1 0 ω > ω π π x 2ωc ⎩ c
35 36
7. Anti-Aliasing 7. Anti-Aliasing Filtering in Texture Space Filters and Fourier Transforms and Screen Space
37 38
7. Anti-Aliasing 7. Anti-Aliasing
The Concept of Resampling Projection and Image Warping Filters Affine Mapping Projective Mapping
• Perspective projection of a textured surface • Non-uniform sampling pattern on screen • Optimal resampling filter is spatially variant 39 40
7. Anti-Aliasing 7. Anti-Aliasing
Relations between Texture and Spatially Variant Filtering Image Space Texture space Image space
warp
1. 4.
2. 3. Screen Space Texture Space
41 42
7. Anti-Aliasing 7. Anti-Aliasing Antialiasing in Raytracing Jittering
• Supersampling • Random Perturbation of Sampling Positions
Pixel
43 44
7. Anti-Aliasing 7. Anti-Aliasing
Poisson Sampling vs. Jittering Supersampling & Jittering
4 Rays/Pixel Jitter=0.3
45 46
7. Anti-Aliasing 7. Anti-Aliasing
Supersampling & Jittering Supersampling & Jittering
Jitter=0.5 Jitter=1.0 4 Rays/Pixel Jitter=0.3
47 48
7. Anti-Aliasing 7. Anti-Aliasing Supersampling & Jittering Adaptive Supersampling
Jitter=0.5 Jitter=1.0
49 50
7. Anti-Aliasing 7. Anti-Aliasing
Adaptive Supersampling
51
7. Anti-Aliasing