58
Fractals and Terrain Synthesis

Fractals and Terrain Synthesis

  • Upload
    faris

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

Fractals and Terrain Synthesis. WALL-E, 2008]. Proceduralism. Philosophy of algorithmic content creation Frees up artist time to concentrate on most important elements (hero characters, major locations) Musgrave: "not one concession to the hated user". Simulation and Optimization. - PowerPoint PPT Presentation

Citation preview

Page 1: Fractals and Terrain Synthesis

Fractals and Terrain Synthesis

Page 2: Fractals and Terrain Synthesis

WALL-E, 2008]

Page 3: Fractals and Terrain Synthesis

Proceduralism

• Philosophy of algorithmic content creation• Frees up artist time to concentrate on

most important elements (hero characters, major locations)

• Musgrave: "not one concession to the hated user"

Page 4: Fractals and Terrain Synthesis

Simulation and Optimization

• Simulation:– models through simulation of underlying

process– control through initial settings– may be difficult to adjust rules of simulation

• Optimization:– models through energy minimization– control through constraints, energy terms– may be difficult to design energy function

Page 5: Fractals and Terrain Synthesis
Page 6: Fractals and Terrain Synthesis

[Rusnell, Mould, and Eramian 2009]

Page 7: Fractals and Terrain Synthesis
Page 8: Fractals and Terrain Synthesis
Page 9: Fractals and Terrain Synthesis
Page 10: Fractals and Terrain Synthesis
Page 11: Fractals and Terrain Synthesis

Height Fields

• Each point on xy-plane has a unique height value

• Convenient for graphics – simplifies representation (can store in 2D array)

• Used for terrain, water waves• Drawback: not able to represent full range

of possibilities

Page 12: Fractals and Terrain Synthesis
Page 13: Fractals and Terrain Synthesis

Height Fields and Texture

• Can use any texture synthesis process to generate height fields– simply interpret intensity as height, create

mesh, render• The most successful processes have used

fractals– self-similarity a feature of real terrains– self-similarity defining characteristic of fractals

Page 14: Fractals and Terrain Synthesis
Page 15: Fractals and Terrain Synthesis

Iterated Function Systems

• Show up frequently in graphics• L-systems replacement grammar a

celebrated example• Capable of producing commonly cited

fractal shapes– Sierpinski gasket– Menger sponge– Koch snowflake

Page 16: Fractals and Terrain Synthesis
Page 17: Fractals and Terrain Synthesis
Page 18: Fractals and Terrain Synthesis

Mandelbrot Set

• Said to “encode the Julia sets”• coloring of the complex plane for

connectivity of quadratic Julia sets – say Jc is the set for zn+1 = zn

2 + c• Point c is in the Mandelbrot set if Jc is

connected, not in the set otherwise• Partitions complex plane

– “Mandelbrot separator” – fractal curve

Page 19: Fractals and Terrain Synthesis
Page 20: Fractals and Terrain Synthesis

Mandelbrot set calculation

• Turns out that it is quite straightforward to get the Mandelbrot set computationally:– for each pixel c:

• let z0 = c• compute z = z2+c repeatedly, until

– (a) |z| > 2 (diverges)– (b) iteration count exceeds constant (say 1000)

• if diverged, color it according to the iteration number on which it diverged

• if never diverged, color with some special color

Page 21: Fractals and Terrain Synthesis
Page 22: Fractals and Terrain Synthesis

Fractals

• Nonfractal complexity: arises from accretion of different kinds of detail– e.g., people: complex, but not self-similar

• Fractal complexity: arises from repeating the same details– What detail to repeat?– Perlin noise a suitable source of detail

Page 23: Fractals and Terrain Synthesis

Multiresolution Noise

• Different signals at different scales• Fractals: clouds, mountains, coastlines

1/2 1/4 1/8 1/16 sum

Page 24: Fractals and Terrain Synthesis

Multiresolution Noise

• FNoise(x,y,z) = sum((2^-i)*Noise(x*2^i…))

• Extremely common formulation – so common that many mistake it for the basic noise primitive

Page 25: Fractals and Terrain Synthesis

Fractional Brownian Motion• aka fBm• requires parameter H (relative size of

successive octaves – "roughness")val = 0;for (i = 0; i < octaves; i++) { val += Noise(point)*pow(2,-H*i); point *= 2;}

Page 26: Fractals and Terrain Synthesis

Fractional Brownian Motion• aka fBm• requires parameter H (relative size of

successive octaves – "roughness")val = 0;for (i = 0; i < octaves; i++) { val += Noise(point)*pow(2,-H*i); point *= 2;}

why 2?"Lacunarity" parameter

Page 27: Fractals and Terrain Synthesis

Lacunarity

• "Lacunarity" (from Latin "lacuna", gap) gives the spacing between octaves

• Larger values mean fewer octaves needed to cover same range of scales– faster to compute– but individual octaves may be visible

• Smaller values mean more densely packed octaves, richer appearance

Page 28: Fractals and Terrain Synthesis

Lacunarity• Balance between speed and quality• Value of 2 the "natural" choice

– but in genuinely self-similar fractals, may lead to visible artifacts as same features pile up

• Transcendental numbers good– genuinely irrational, no piling at any scale

• Values slightly over 2 offer good compromise of speed/appearance– e-1/2, π-1

Page 29: Fractals and Terrain Synthesis

Fractal ranges of scale

• Real fractals are band-limited: they have detail only at certain scales

• Computed fractals also band-limited– practical limitations: don’t write code with

infinite loops• Mandelbrot: fractal objects have 3+ scales

Page 30: Fractals and Terrain Synthesis

Midpoint Displacement

• Repeated subdivision:– begin with two endpoints; at each step, divide

each edge and perturb the midpoint– In 2D: on alternate steps, divide orthogonal

and diagonal edges• Among the first fractal terrain systems

(Fournier/Fussell/Carpenter 1982)• Problems: seams from early points

Page 31: Fractals and Terrain Synthesis

Midpoint Displacement

Page 32: Fractals and Terrain Synthesis

Midpoint Displacement

Page 33: Fractals and Terrain Synthesis

Characteristics of fBm

• Homogeneous: the same everywhere• Isotropic: the same in all directions

• Real terrains are neither– mountains differ from plains– direction can matter (e.g., rivers flow downhill)

• Require multifractals

Page 34: Fractals and Terrain Synthesis

Multifractals• Fractal dimension varies with location• Simple multifractal: multiplicative cascade

val = 1;for (i = 0; i < oct; i++){ val *= (Noise(point)+offset)*pow(2,-H*i)point *= 2; }

Page 35: Fractals and Terrain Synthesis
Page 36: Fractals and Terrain Synthesis

Problems

• Multiplicative formation unstable (can diverge)

• Extremely sensitive to value of offset• Control elusive

Page 37: Fractals and Terrain Synthesis

Hybrid multifractals• In real terrains, higher areas are rougher

(new mountains) and lower areas smoother (worn down, silted over)

• Musgrave: weight of each octave multiplied by current value of function– near value=0 (“sea level”), higher frequencies

damped – very smooth– higher values: more jagged– need to clamp value to prevent divergence

Page 38: Fractals and Terrain Synthesis

Ridges

• Simple trick to get ridges out of noise:– Noise values range from -1 to 1– Take 1-|N(p)|– Absolute value reflects noise about y=0;

negative moves reflections to top• Cellular texture (Voronoi regions) naturally

has ridges, if distance interpreted as height

Page 39: Fractals and Terrain Synthesis
Page 40: Fractals and Terrain Synthesis
Page 41: Fractals and Terrain Synthesis

von Koch snowflake

Page 42: Fractals and Terrain Synthesis

L-Systems

• "Lindenmeyer systems", after Aristid Lindenmeyer (1960's)

• Replacement grammar– set of tokens– rules for transformation of tokens

– All rules applied simultaneously across string

Page 43: Fractals and Terrain Synthesis

L-Systems• Very successful for modeling certain

classes of structured organic objects– ferns– trees– seashells

• Success has impelled others to apply the methods more widely– rust– entire ecosystems

Page 44: Fractals and Terrain Synthesis

L-System example

• Tokens: A, B• Rules

– A → B– B → AB

Page 45: Fractals and Terrain Synthesis

L-System example

• Tokens: A, B• Rules

– A → B– B → AB

• Initial string: A• Sequence: A, B, AB, BAB, ABBAB…• Lengths are Fibonacci numbers (why?)

Page 46: Fractals and Terrain Synthesis

Geometric Interpretation

• Strings are interesting, but application to graphics requires geometric interpretation

• Usual method: interpret individual tokens as geometric primitives

Page 47: Fractals and Terrain Synthesis

Turtle Graphics• The language Logo (1967) – once widely

used for education• Turtle has heading and position; when it

moves, it draws a line behind it• Commands:

– F, B: move forward/backward fixed distance– +,- : turn right/left fixed angle– [, ] : push or pop the current state– A : no-op

Page 48: Fractals and Terrain Synthesis
Page 49: Fractals and Terrain Synthesis
Page 50: Fractals and Terrain Synthesis
Page 51: Fractals and Terrain Synthesis

L-Systems and the Turtle

• Example replacement rules for the turtle:– F → F-F++F-F– everything else unchanged

Page 52: Fractals and Terrain Synthesis

von Koch snowflake

Page 53: Fractals and Terrain Synthesis

Branching

• 'Push' and 'pop' operators can produce branching:– A → F[+A][-A]FA– F → FF

• A is an 'apex' – the tip of a branch• Each apex sprouts a new branch with

buds midway along its length, while existing branches elongate

Page 54: Fractals and Terrain Synthesis
Page 55: Fractals and Terrain Synthesis

Turtle Graphics in 3D

• Turtle has orientation and position• Commands:

– F, B: move forward/backward fixed distance– +,- : turn right/left fixed angle (yaw)– ^,& : turn up/down fixed angle (pitch)– \, / : roll right/left fixed angle– [, ] : push or pop the current state– A : no-op

Page 56: Fractals and Terrain Synthesis
Page 57: Fractals and Terrain Synthesis

Ternary Tree

• As usual, just one rule:

• F → F[&F][/&F][\&F]

• Each segment has three branches attached to its tip

Page 58: Fractals and Terrain Synthesis