01/07/10 Presentation 1
Perlin Noise Creating Procedural Solid T extures Student: - - PowerPoint PPT Presentation
Perlin Noise Creating Procedural Solid T extures Student: - - PowerPoint PPT Presentation
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!
2 Presentation 01/07/10
T
- pics
Topics Theory Some examples
- Solid textures.
- Perlin Noise.
- What can we do with all this?
Software Introduction More examples!
3 Presentation 01/07/10
Introduction
Introduction Theory Some examples
➙ What is Perlin Noise?
- Perlin Noise is a method used to develop several
interesting procedural textures:
- Clouds / Water / Fire / some materials (marble,
wood) ...
- ... and much more!
Software Topics More examples!
4 Presentation 01/07/10
Theory
Theory Introduction Some examples
➙ What is Perlin Noise?
- Perlin Noise is a mapping from ℝn to ℝ.
- First, create a grid of points with integer
coordinates,
- 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.
Software Topics More examples!
5 Presentation 01/07/10
Theory
Theory Introduction Some examples
➙ What does it look like?
- Perlin Noise alone isn't
very useful.
- We can, however,
combine it with several
- ther functions!
- For instance, ⅀(1/f)*(noise(f*p))
is called turbulence, and can be used to generate lots of interesting effects.
Software Topics
↑This
More examples!
6 Presentation 01/07/10
Some examples
Some examples Theory Introduction
➙ Some examples from Perlin's “Making Noise” talk (and my attempts at replicating them):
Software Topics
➙Original Image ➙My example
More examples!
7 Presentation 01/07/10
A water ball with ripples
Some examples Theory Introduction
➙ How was it obtained?
Software Topics
- Only bump mapping, no color
variation;
- 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)
More examples!
8 Presentation 01/07/10
Some examples
Some examples Theory Introduction
➙ Another example from Perlin's “Making Noise” talk:
Software Topics
➙Original Image ➙My example
More examples!
9 Presentation 01/07/10
A green-ish planet with clouds
Some examples Theory Introduction
➙ How was it obtained?
Software Topics
- Outside of the ball brightened, to
make it look like a clearer atmosphere arround a darker 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;
More examples!
10 Presentation 01/07/10
Some examples
Some examples Theory Introduction
➙ Yet another example from Perlin's “Making Noise” talk:
Software Topics
➙Original Image ➙My example
More examples!
11 Presentation 01/07/10
Flame ball
Some examples Theory Introduction
➙ How was it obtained?
Software Topics
- Initial colour set as bright orange
(lots of R and G);
- The color is then obtained by
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.
More examples!
12 Presentation 01/07/10
Some examples
Some examples Theory Introduction
➙ One last example from Perlin's “Making Noise” talk:
Software Topics
➙Original Image ➙My example
More examples!
13 Presentation 01/07/10
Marble
Some examples Theory Introduction
➙ How was it obtained?
Software Topics
- Initial colour set as “hay”, then
multiplied by 'f';
- 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
- scillation of the 'sin' function
(black x colored lines).
More examples!
14 Presentation 01/07/10
The program.
Theory Some examples Introduction
➙I've created an interactive program that
allows the user to create his own textures using Perlin Noise / T urbulence.
Topics More examples! Software
15 Presentation 01/07/10
Normal editing.
Theory Some examples Introduction
➙The first tab allows the user to create bump
maps using diferent kinds of T urbulence, stripes, and several possibilities.
Topics More examples! Software
16 Presentation 01/07/10
T exture creation.
Theory Some examples Introduction
➙Users can create their own textures. Some examples:
Topics More examples! Software
17 Presentation 01/07/10
Defines Regions.
Theory Some examples Introduction
➙The program also allows the user to create a division on the surface using turbulence or stripes...
Topics More examples! Software
18 Presentation 01/07/10
The final result!
Theory Some examples Introduction
➙Finally, you can create an image that contains the respective textures in the created regions,
- n a sphere with the bump map you used
before!
Topics More examples! Software
01/07/10 Presentation 19
More results!
01/07/10 Presentation 20
Few more results!
21 Presentation 01/07/10
References:
- 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”,
http://www.noisemachine.com/talk1
Papers: Talks:
01/07/10 Presentation 22