1 / 36

Procedural Texture Synthesis

Procedural Texture Synthesis. Patterns from Algorithms. Procedural Synthesis. The basic problem: Worlds are big . To create models and textures for even fairly small worlds takes ages, if you do it by hand. Idea: write down the rules of the world, and a program can create the content.

tab
Download Presentation

Procedural Texture Synthesis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procedural Texture Synthesis Patterns from Algorithms

  2. Procedural Synthesis • The basic problem: Worlds are big. • To create models and textures for even fairly small worlds takes ages, if you do it by hand. • Idea: write down the rules of the world, and a program can create the content. • Philosophy of algorithmic synthesis: proceduralism.

  3. [World of Warcraft, 2004-2010]

  4. [Oblivion, 2006]

  5. Procedural Texture • Simplest form: function evaluation • T(x,y) = ? • Instead of accessing texture memory, directly compute the texture value • Pro: saves memory, bus • Con: need the algorithm • and, need a shader, but normally would have that anyway

  6. Proceduralismvs Reuse • Reuse: simple repetition of models, textures • Proceduralism: new models, textures by rerunning algorithm with different inputs • trivially, different random seed

  7. Sophisticated reuse • Use small pieces – reuse not so obvious • "Lego blocks" • Modular design: blocks are big (e.g., section of tunnel) – might be OK in industrial fiction • "divine corpse" for monsters, architecture • Penrose tiles, Wang tiles for texture, terrain • Reuse with rotation, less apparent • city setting: regular layout

  8. Texture Synthesis Primitives • Building blocks for textures: • noise • Perlin noise • Voronoi cells • many others • Rosalind Picard: "a society of models"

  9. Texture Basis • "basis functions" for texture • primitive functions used as foundation for specific functions aimed at specific effects • Perlin noise: "the function that launched a thousand textures"

  10. Noise • Simple and straightforward: • N(x,y) = random(range) • Introduces much-needed randomness • But: • lacks coherence • cannot be sensibly subsampled, supersampled

  11. Perlin Noise • Ken Perlin, 1985 • random 4-vector at each node on an integer lattice: {a,b,c,d}[x][y][z] Noise[x][y][z] = d[x][y][z] if x,y,z are integers otherwise, interpolate ax+d, by+d, cz+d using spline 2t^3 – 3t^2

  12. DNoise • Noise() is a scalar • Can get vector-valued function (for bump mapping, say) by taking the gradient of Noise()

  13. 1/2 1/4 1/8 1/16 Multiresolution Noise • Different signals at different scales • Fractals: clouds, mountains, coastlines sum

  14. Multiresolution Noise • aka "turbulence" • FNoise(x,y,z) = Σ((2-i)*Noise(x*2i…)) • Extremely common formulation – so common that many mistake it for the basic noise primitive

  15. Attributes of Perlin Noise • Reproducible • Coherent • Continuous in first derivative • Arbitrary resolution • Used as input to other functions

  16. Perlin Marble • texture = cos(x + a*Noise(x,y)) • or, texture = cos(x + a*Turb(x,y)) • properly renormalized, of course! • purple/white color map • value of parameter a says how noisy the marble is

  17. Cellular Texture • “Worley texture”, Worley 1996 • Based on the Voronoi diagram: partition of plane according to nearest point • Use nth-order distances (closest, second closest…) as basis

  18. v1 v3 v2 v4

  19. v1 v3 v2 v4

  20. Combining distances • Having normalized distances, can combine • say D1, D2, D3, D4 • Take (say) 2*D1 – D3 • Linear transformation given by 4 coefficients: • C1D1 + C2D2 + C3D3 + C4D4 • manipulate coefficients to obtain effects

More Related