Motivation

• The main goal of 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 () • Sampling can cause artifacts (=) 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 •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/ 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