Perlin noise: Difference between revisions
No edit summary |
|||
Line 9: | Line 9: | ||
==Resources== | ==Resources== | ||
* [https://dl.acm.org/doi/10.1145/325165.325247 An image synthesizer (Perlin, SIGGRAPH 1985)] | |||
* [https://www.semanticscholar.org/paper/Improving-noise-Perlin/a6fd5071b73f542c79bd08d409c5f73de38dac5d Improving noise (SIGGRAPH 2002)] | |||
* https://rtouti.github.io/graphics/perlin-noise-algorithm | * https://rtouti.github.io/graphics/perlin-noise-algorithm |
Revision as of 18:46, 29 March 2023
Algorithm
- Generate a grid of random unit-length vectors
- In improved perlin noise, vectors which only contain +=1 and 0 such as (1, 1, 0) are used
- For each point, find the closest corners in the grid and compute the dot product between the vector from the corner and the corner's random vector.
- Interpolate between these using smoothstep.
- In improved perlin noise, use smootherstep which has zero first and second derivatives at the boundaries:
- \(\displaystyle \operatorname{smootherstep}(x) = 6x^5 - 15x^4 + 10x^3\)