Perlin noise: Difference between revisions

No edit summary
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
# Generate a grid of random unit-length vectors
# 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
#* 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.
# 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. This results in 4 values for each pixel, one for each corner.
# Interpolate between these using smoothstep.
# Interpolate between these using smoothstep.
#* In improved perlin noise, use smootherstep which has zero first and second derivatives at the boundaries:
#* In improved perlin noise, use smootherstep which has zero first and second derivatives at the boundaries:
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