Hoe het werkt
Uitgevonden door Ken Perlin in 1983 voor de film Tron, genereert Perlin-noise vloeiende pseudowillekeurige waarden door te interpoleren tussen gradientvectoren die op een regelmatig raster zijn geplaatst. Elk rasterpunt krijgt een willekeurige gradient toegewezen, en de noise-waarde op een willekeurig punt wordt berekend door de bijdragen van de omliggende rasterhoeken te mengen.
Ruimtelijke coherentie
In tegenstelling tot witte ruis heeft Perlin-noise ruimtelijke coherentie — nabije punten leveren vergelijkbare waarden op. Deze eigenschap maakt het ideaal voor het simuleren van natuurlijke fenomenen: wolken, terrein-heightmaps, marmertexturen en organische flow fields.
// Perlin noise pseudocode
for each point (x, y):
x0, y0 = floor(x), floor(y)
g00, g10, g01, g11 = gradients at corners
d00 = dot(g00, (x-x0, y-y0))
d10 = dot(g10, (x-x0-1, y-y0))
// ... blend with fade curve
return lerp(fade(x-x0), lerp(...), lerp(...))Fractale Brownse beweging
In algoritmische kunst fungeert Perlin noise als een fundamenteel bouwblok. Meerdere octaves kunnen gestapeld worden — elk met dubbele frequentie en halve amplitude — een techniek die fractal Brownian motion (fBm) wordt genoemd. Dit levert rijke, gedetailleerde texturen op met structuur op elke schaal, van glooiende heuvels tot fijne oppervlaktekorrel.
