59
computer graphics & visualization Simulation and Animation Fractals

Simulation and Animation

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

Fractals

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

computer graphics & visualization

Simulation and Animation – SS 07Jens Krüger – Computer Graphics and Visualization Group

Quality

Check out http://www.planetside.co.uk/gallery/f/tg2