fractals and terrain synthesis. wall-e, 2008] proceduralism philosophy of algorithmic content...

Download Fractals and Terrain Synthesis. WALL-E, 2008] Proceduralism Philosophy of algorithmic content creation Frees up artist time to concentrate on most important

If you can't read please download the document

Upload: julius-rose

Post on 25-Dec-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

  • Slide 1
  • Fractals and Terrain Synthesis
  • Slide 2
  • WALL-E, 2008]
  • Slide 3
  • 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"
  • Slide 4
  • 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
  • Slide 5
  • Slide 6
  • [Rusnell, Mould, and Eramian 2009]
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • 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
  • Slide 12
  • Slide 13
  • 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
  • Slide 14
  • Slide 15
  • 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
  • Slide 16
  • Slide 17
  • Slide 18
  • 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 z n+1 = z n 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
  • Slide 19
  • Slide 20
  • 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 = z 2 +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
  • Slide 21
  • Slide 22
  • 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
  • Slide 23
  • Multiresolution Noise Different signals at different scales Fractals: clouds, mountains, coastlines 1/21/41/81/16 sum
  • Slide 24
  • 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
  • Slide 25
  • 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; }
  • Slide 26
  • 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
  • Slide 27
  • 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
  • Slide 28
  • 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
  • Slide 29
  • Fractal ranges of scale Real fractals are band-limited: they have detail only at certain scales Computed fractals also band-limited practical limitations: dont write code with infinite loops Mandelbrot: fractal objects have 3+ scales
  • Slide 30
  • 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
  • Slide 31
  • Midpoint Displacement
  • Slide 32
  • Slide 33
  • 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
  • Slide 34
  • 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; }
  • Slide 35
  • Slide 36
  • Problems Multiplicative formation unstable (can diverge) Extremely sensitive to value of offset Control elusive
  • Slide 37
  • 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
  • Slide 38
  • 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
  • Slide 39
  • Slide 40
  • Slide 41
  • von Koch snowflake
  • Slide 42
  • 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
  • Slide 43
  • 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
  • Slide 44
  • L-System example Tokens: A, B Rules A B B AB
  • Slide 45
  • 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?)
  • Slide 46
  • Geometric Interpretation Strings are interesting, but application to graphics requires geometric interpretation Usual method: interpret individual tokens as geometric primitives
  • Slide 47
  • 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
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • L-Systems and the Turtle Example replacement rules for the turtle: F F-F++F-F everything else unchanged
  • Slide 52
  • von Koch snowflake
  • Slide 53
  • 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
  • Slide 54
  • Slide 55
  • 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
  • Slide 56
  • Slide 57
  • Ternary Tree As usual, just one rule: F F[&F][/&F][\&F] Each segment has three branches attached to its tip
  • Slide 58