Upload
yael-emerson
View
39
Download
0
Embed Size (px)
DESCRIPTION
Simulation and Animation. Fractals. Fractals and fractal landscapes. Fractals : „Die fraktale Geometrie der Natur“, B. Mandelbrot, Birkhäuser „The Science of Fractal Images“, H.-O. Peitgen , D.Saupe , Springer Verlag Fractal landscapes : - PowerPoint PPT Presentation
Citation preview
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals and fractal landscapesFractals:• „Die fraktale Geometrie der Natur“, B. Mandelbrot, Birkhäuser • „The Science of Fractal Images“, H.-O. Peitgen, D.Saupe, Springer Verlag
Fractal landscapes:• „Texturing and Modeling, A Procedural Approach“ , D. Ebert et al.
AP Professional, Cambridge – available in our library• www.wizardnet.com/musgrave/ • www.javaworld.com/javaworld/jw-08-1998/jw-08-step.html
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals and fractal landscapesFractal shapes in nature:
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
How to generate fractal landscapes
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Midpoint Displacement• Random Midpoint Displacement
– Interpolation and displacement– Decreasing random displacements in each iteration
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Midpoint Displacement• Random displacements Di (i: subdivision level)
– Di has normal distribution E[Di]=0
– Di = N(0,i2) = i
N(0,1)
– Standard deviation i
– Variance(Di) = i2 = (i-1 1/2H)2
Xi+1(t) and 1/2H Xi(2t) are statistically self-similar
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Midpoint Displacement• Terrain generation
– Interpolate new values from adjacent values– Add random displacement
– Values are influenced by adjacent squares– Creases are introduced by early iterations
Old points New points
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Midpoint Displacement• Terrain generation – the Diamond Square algorithm
http://62.65.146.182/java/fractal/fract.htm
http://users.bestweb.net/~hogdog/fractal.htm
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Midpoint DisplacementSuccessive refinements in 2D
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals• What is a fractal
– Well, many different fractals exist
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals• Fractal = abbreviation for „Fractional Dimension“
– Any curve or surface that is independent of scale – it looks the same over all ranges of scale
• If blown up in scale, any part appears identical to the whole– „Exact“ Self-Similarity (Deterministic Fractals)
• Iterations of a scaling process
Sierpinski-Triangle
Koch-Curve
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals Fractals
– „Statistical“ Self-Similarity (Stochastic Fractals)• If blown up in scale, any part appears statistically similar to the
whole
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals• Fractional dimension
– Measure for the „roughness“ of a curve/surface• E.g. a rough curve may cover the surface it is defined on
– Somewhere between dimension N and N+1• Characterizes the increase of measured length between given points as scale
decreases
• L: number of self-similar pieces• s: length of the pieces (in units)
)/1log(
)log(
s
LD
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractals • Fractional dimension
– Example: The Koch-Curve
– It fills more space than a line (D=1) but less space than a Euclidean area of the plane (D=2)
26.1)3log(
)4log(D
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractal generation processes1. Pick a starting point (x0,y0).
2. Choose an index i with a given probability p3. Compute the next point as follows:
xn+1= aixn+ biyn+ ei
yn+1= cixn+ diyn+ fi
4. Plot the new point and goto step 2
i a b c d e f p 0 0.0 0.0 0.0 0.16 0.0 0.0 0.101 0.2 -0.26 0.23 0.22 0.0 1.6 0.08 2 -0.15 0.28 0.26 0.24 0.0 0.44 0.08 3 0.75 0.04 -0.04 0.85 0.0 1.60 0.74
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractal generation processes• Iterated Function Systems
• Repeated transformation of simple patterns on smaller and smaller scales (by means of affine transformations)
• Select transformation (from set of possible transformations) randomly with certain probablity
Example: Ferni a b c d e f p 0 0.0 0.0 0.0 0.16 0.0 0.0 0.101 0.2 -0.26 0.23 0.22 0.0 1.6 0.08 2 -0.15 0.28 0.26 0.24 0.0 0.44 0.08 3 0.75 0.04 -0.04 0.85 0.0 1.60 0.74
11 y
x
f
e
d
b
c
aAxx ii
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractal generation processes• Mandelbrot Set
• Evaluate recursively for inital points c in complex plane
• Color points in the plane corresponding to rate of divergence
002
1 zwithczz ii
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractal generation processes• Julia Sets
• For fixed c, points zi on thecomplex plane for which does not tend to infinity
• Or more general:– zn+1 = f(zn)– E.g.:
zn+1 = c sin(zn)
zn+1 = c exp(zn)
czz ii 2
1
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractal generation processesStochastic Fractals
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fractal generation processes• Stochastic Fractals
– Simulation of Fractal Brownian motion (FBm)• Probability as a tool for modelling
– Modelling of (dynamic) natural phenomena• Terrains, clouds, water etc.
– Modelling and rendering of solid textures• Marble, wood etc.• Procedural shaders
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Brownian Motion
– Discovered 1827 by botanist R. Brown• Behavior of pollen in water
– Describes the movement of small particles of solid matter in liquid
– Mathematical examination by Einstein and Wiener• Dynamics of molecular collisions• Pollen particles being hit by water molecules
– Used by Mandelbrot for the modelling of natural phenomena
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Brownian Motion - a little statistics
– Continuous random variable X
– Probability distribution function F(x) = P(Xx)– Probability density function f(x) 0
– Expectation E[X]:
– Variance Var[X] = E[(X-E[X])2]
x
dttfxF )()(1)(
dttf
dxxfx )(
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals • Brownian motion – a little statistics
– Example: Gaussian Distribution N(,2)
2
2
1
2
1)(
x
exf
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals • Brownian motion – „Random Walk Process“
– Brownian motion is a stochastic (random) process– Describes the movement of a particle over time t
X(t+t) = X(t) + v · t · N(0,1)
• X: particle position• v: speed of particle• N(0,1): normal distributed random variable
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Brownian motion – properties
– The increments X(t2)-X(t1) have Gaussian distribution E[X(t2) – X(t1)] = 0
– Var[X(t2) – X(t1)] |t2-t1|• Continuous but nowhere differentiable
– Increments X(t+h)-X(t) are independent of t• Brownian motion is stationary
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Brownian motion
– If X(t0)=0 X(t) and X(rt)/r0.5 are statistically equivalent
– Brownian motion – more than noise!
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• White noise (1/f0-noise)
– Completely uncorrelated from sample to sample• Independent of the past
– Flat spectrum – all frequencies with the same amount of energy– Simulated by the pseudo-random generator
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• 1/f-noise
– It is correlated from sample to sample– Lower frequencies contribute most– Often found in nature (clouds, water, growth processes)
• E.g. Kolmogorovs spectrum– Complex generation process
• See next chapter
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Brownian motion
– It is the integration of white noise – also called 1/f2-noise– More correlated than white noise and 1/f-noise– Correlated (constraint) random walk
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Fractal Brownian motion (FBm)
– Extension of Brownian motion• Var[X(t2) – X(t1)] |t2-t1|2H
• H: Hurst exponent• X(t), 1/rH X(rt) are statistically self-similar with respect to H• 0 H 1 determines the roughness of the structure
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Fractal Brownian motion (FBm)
H = 0.5: increments are not correlated Þ Brownian motion
H > 0.5: increments have positive correlation Þ Increasingly smoother curves
H < 0.5: increments have negative correlation Increasingly rougher curves
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Fractal Brownian motion - 1/f-noise
– Fractal dimension D = d+1-H = d + (3-)/2– d: topological dimension
– Curves: d=1: D = 2-H =(5-)/2– Surfaces: d=2: D = 3-H =(7-)/2– Volumes: d=3: D = 4-H =(9-)/2
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• FBm = 1
D = 2
= 1.5 D = 1.75
= 2 (Bm) D = 1.5
= 2.5 D = 1.25
= 3 D = 1
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Stochastic fractals• Generation processes for (multi-dimensional) FBm
– Midpoint displacement• „Sum of sawtooth waves of successively doubled and scaled
frequencies“
– Rescale-and-Add• „Sum of band-limited random basis functions with scaled
frequencies“
– Fourier domain synthesis• „Sum of sine-waves with random phase and scaled frequencies“
Citations from K. Musgraves PhD thesis
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-Add• Noise synthesis by point evaluation
– Summation of scaled and dilated noise functions
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-AddAdd weighted noise octaves to simulate 1/f-noise
weights 1/20 1/21 1/22 1/23 1/24 1/25
=
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-AddAnother method to simulate 1/f-noise
Generate noisy copies on-the-fly from a base random field
=
1/24 1/23
1/22
1/21
1/20
• • •
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-Add• Noise synthesis by point evaluation
– Summation of scaled and dilated noise functions
• S: noise function– N(0,1) distributed random numbers given on „integer lattice“ – Band-limited, smooth, continuous
• r: lacunarity: average size of gaps (typically r=2)
– Adding noise octaves at decreasing frequency but increasing amplitude
i
k
kkHkiH yrxrS
ryxV yx
0)(
),(1
),(
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-Add• Implementation of the Noise() function
• Lattice noise– N(0,1) variables at grid points (lattice noise)– Multi-dimensional interpolation (value noise)
» bi/tri-linearly» Spline-interpolation
• Gradient noise– Compute pseudorandom gradients at grid points
» Uniformly distributed over the unit circle (sphere in 3D)– For point p and each adjacent grid point compute
» fraction = p – int[p]» gradient[int[p]] · fraction (is a scalar product)
– Linearly interpolate results at p» Interpolation weights are 1- fraction
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Gradient Noise
+ + + =
1. Given an input point
2. For each of its neighboring grid points:• Pick a "pseudo-random" gradient
vector • Compute linear function (dot product)
3. Take weighted sum, using thease curves
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-Add• Implementation of Noise() function
– Memory optimization• Storing values at each grid point too expensive
– Use hash table or permutation array• PermTab[N] = 5,1,28,43,11,... // permutation of first N-1
integers• NoiseTab[N] = 0.1, 0.7, ... // N N(0,1) random values
• 2D example: Noise((int)x, (int)y) = NoiseTab[PermTab[(x+PermTab[y]) % N]]
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rescale-and-Add• Local parameter variation
– Fractal dimension D = d+1-H
– Anisotropic fractal dimension in spaceand time
– Often called multifractals (heterogeneous fractals)
iik
kH
i
H
rk
rkH
r
rH
i )log(
)log(
)log(
)log('
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Application of noise • Random surface texture
– Color = white * noise(point)
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Application of noise• Colored noise
– Color = Colormap (noise(k*point))– k controls the feature size - the larger k is, the
smaller the feature
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Application of noise• Classical Turbulence function
(note similarity to Rescale-and-Add method)
function turbulence(p)t = 0scale = 1while (scale > pixelsize)
t += abs(Noise(p/scale)*scale)scale /= 2
return t
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Simulating marble effectsApplication of noise
function marble(p)x = p[1] + rurbulence(p)return marble_color(sin(x))
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Application of noiseUsing turbulence to modulate sphere radius
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain Synthesis• Fourier transform
– Two different approaches to describe a function • Spatial domain vs. frequency domain
– Every reasonable function f can be represented as a superposition of harmonic (sin/cos) functions
• Output is an imaginary number S(t)=R(t)+iI(t)=S(t)ei(t)
– S(t) : amplitude– (t) : phase angle
,)()( 2
dxexftF itx
dtetFxf itx2)()(
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain Synthesis• Fourier transform
– Superposition of harmonic functions
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain Synthesis• The discrete Fourier transform of images
– The sampled Fourier transform contains frequencies needed to represent the domain
)(21
0
1
02
),(1
),( N
vy
N
uxiN
x
N
y
eyxIN
vuF
)(21
0
1
02
),(1
),( N
vy
N
uxiN
u
N
v
evuFN
yxI
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain SynthesisExample of image and transformed image
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain Synthesis• Frequency synthesis – general idea:
– Generate appropriate spectrum – Apply inverse Fourier-Transform
• Frequency synthesis of fractal (1/f-spectrum) landscapes:
1) Generate 2D lattice noise signal2) Transform 2D signal into the frequency domain3) Muliply complex numbers with appropriate 1/f-filter4) Inverse transform
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain SynthesisBasic algorithm
Random noise Noise spectrum Frequency filterResult after inverse FFT
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Fourier Domain Synthesis• Properties
– Global technique• Does no allow for local changes of parameters• Adaptive selection of frequencies (size of details) not
possible• High-memory consumption
– Efficient• Modification and scaling in frequency space• Inverse FFT
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
What we have learned• What is a fractal• Statistical properties of stochastic fractals
– Can model certain objects/structures/movements realistically
• Generation techniques for stochastic fractals– Global techniques
• Midpoint displacement• Fourier domain synthesis
– Local/functional approach• Rescale-and-add• Generalization of Perlins turbulence function
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rendering Fractal Landscapes• Alternative methods:
– Polygon rendering using graphics hardware• Tesselate the height field• Draw each triangle separately or• Perform adaptive level-of-detail rendering
– Ray-tracing• A) Tesselate the height field and trace the triangle mesh• B) Directly trace the fractal (QEAB)
Check out http://www.vterrain.org/
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rendering Fractal Landscapes • Polygon rendering
– Tesselation is given implicitely or can be generatedÞ A height field over a rectangular domain, values are given at discrete
sample points
computer graphics & visualization
Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group
Rendering Fractal Landscapes• Rendering lit and textured triangles
– Vertices, colors, texture coords, normalsTextured only Textured and shaded