Perlin Noise Creating Procedural Solid T extures Student: Alexandre Chapiro, Advisor: Luiz Velho 01/07/10 Presentation 1

T opics Topics ● Solid textures. Introduction Theory Some examples ● Perlin Noise. Software More examples! ● What can we do with all this? 01/07/10 Presentation 2

Introduction Topics ➙ What is Perlin Noise? Introduction Theory Some examples ● Perlin Noise is a method used to develop several Software interesting procedural textures: More examples! ● Clouds / Water / Fire / some materials (marble, wood) ... ● ... and much more! 01/07/10 Presentation 3

Theory Topics ➙ What is Perlin Noise? Introduction ● Perlin Noise is a mapping from ℝn to ℝ. Theory Some examples ● First, create a grid of points with integer Software coordinates, More examples! ● For each point, find it's closest neighbours on this grid, ● Use a hash table to assign each of the grid points a gradient vector, which defines a linear function, ● Weight these functions using an S shaped polynomial (currently 6x⁵ – 15x⁴ + 10x³), ● Sum them all, and the result is Perlin Noise. 01/07/10 Presentation 4

Theory Topics ➙ What does it look like? Introduction ● Perlin Noise alone isn't Theory Some examples very useful. Software More examples! ● We can, however, combine it with several other functions! ● For instance, ⅀(1/f)*(noise(f*p)) is called turbulence, and can be used to generate lots of ↑This interesting effects. 01/07/10 Presentation 5

Some examples Topics ➙ Some examples from Perlin's “Making Introduction Noise” talk (and my attempts at replicating Theory them): Some examples Software More examples! ➙Original Image ➙My example 01/07/10 Presentation 6

A water ball with ripples Topics ➙ How was it obtained? Introduction Theory ● Only bump mapping, no color Some examples variation; Software More examples! ● The normal vector at each point 'p' is obtained through: n += pnoise(p*parameter); ● 'n' is the original normal; ● Parameter is chosen big enough for a pleasing effect. (more on this later) 01/07/10 Presentation 7

Some examples Topics ➙ Another example from Perlin's “Making Introduction Noise” talk: Theory Some examples Software More examples! ➙Original Image ➙My example 01/07/10 Presentation 8

A green-ish planet with clouds Topics ➙ How was it obtained? Introduction Theory ● Outside of the ball brightened, to Some examples make it look like a clearer Software atmosphere arround a darker More examples! landmass; ● Planet's color is static, with clouds added to the original color; ● Cloud's color obtained with: c += turbulence (8, p); ● 8 is the amount of octaves; 01/07/10 Presentation 9

Some examples Topics ➙ Yet another example from Perlin's “Making Introduction Noise” talk: Theory Some examples Software More examples! ➙Original Image ➙My example 01/07/10 Presentation 10

Flame ball Topics ➙ How was it obtained? Introduction ● Initial colour set as bright orange Theory (lots of R and G); Some examples Software ● The color is then obtained by More examples! keeping R the same and varying G: G -= 4* [turbulence (15, parameter*p, WITH_ABSOLUTE_VALUE)]^2; ● 15 octaves, turbulence with absolute value, ^2 for thinner lines. 01/07/10 Presentation 11

Some examples Topics ➙ One last example from Perlin's “Making Introduction Noise” talk: Theory Some examples Software More examples! ➙Original Image ➙My example 01/07/10 Presentation 12

Marble Topics ➙ How was it obtained? Introduction Theory ● Initial colour set as “hay”, then Some examples multiplied by 'f'; Software More examples! ● K = turbulence(15, p, WITH_ABSOLUTE_VALUE); C = 'hay'* sin(4*PI*(p.x + 2*k^2); ● 15 octaves, turbulence with absolute value, ^2 for thinner lines, 4*PI sets the ammount of oscillation of the 'sin' function (black x colored lines). 01/07/10 Presentation 13

The program. Topics ➙ I've created an interactive program that Introduction allows the user to create his own textures Theory using Perlin Noise / T urbulence. Some examples Software More examples! 01/07/10 Presentation 14

Normal editing. Topics ➙ The first tab allows the user to create bump Introduction maps using diferent kinds of T urbulence, stripes, Theory and several possibilities. Some examples Software More examples! 01/07/10 Presentation 15

T exture creation. Topics ➙Users can create Introduction their own textures. Theory Some examples Some examples: Software More examples! 01/07/10 Presentation 16

Defines Regions. Topics ➙The program also allows the user to create a Introduction division on the surface using turbulence or Theory stripes... Some examples Software More examples! 01/07/10 Presentation 17

The final result! Topics ➙Finally, you can create an image that contains Introduction the respective textures in the created regions, Theory on a sphere with the bump map you used Some examples before! Software More examples! 01/07/10 Presentation 18

More results! 01/07/10 Presentation 19

Few more results! 01/07/10 Presentation 20

References: Papers: 1) Ken Perlin, “An Image Synthesizer”, SIGGRAPH ● Volume 19, number 3, July 1985. 2) Ken Perlin, “Improving Noise”, Proceedings of ACM ● SIGGRAPH 2002. 3) A. Lagae et al., “State of the Art in Procedural ● Noise Functions”, EUROGRAPHICS, STAR – State of The Art Report, 2010. Ken Perlin, “Making Noise”, Talks: ● http://www.noisemachine.com/talk1 01/07/10 Presentation 21

Thank You! 01/07/10 Presentation 22

Recommend

More recommend