Szum Perlina – algorytm generowania szumu gradientowego, nazwany na cześć swojego twórcy, Kena Perlina. Jest to pierwsza implementacja szumu gradientowego, a jego opis został upubliczniony w 1985 roku. Szum ten nie został opatentowany.
Historia Szum został stworzony w roku 1983 przez Perlina jako rezultat frustracji spowodowanej „maszyno-podobnym” wyglądem ówczesnej grafiki komputerowej oraz w czasie jego prac nad filmem Tron. Wyniki swojej pracy Perlin opublikował w 1985 roku. W 1997 roku autor algorytmu otrzymał za swoją pracę Oscara w kategorii technicznej.
Pseudokod Podany pseudokod jest dwuwymiarową implementacją klasycznego szumu Perlina. Jest to zmodyfikowana wersja, inna pod względem semantyki, ale o tym samym działaniu co oryginalny szum z 1985 roku. //Interpolacja liniowa function lerp(float a0, float a1, float w) { return (1.0 - w)*a0 + w*a1;
// Wylicza iloczyn skalarny wektora odległości z odpowiednim wektorem gradientu function dotGridGradient(int ix, int iy, float x, float y)
// Wcześniej wyliczone wektory gradientu extern float Gradient[IYMAX][IXMAX];
// Oblicz wektor odległości float dx = x - (float)ix; float dy = y - (float)iy;
// Oblicz iloczyn skalarny return (dx*Gradient[iy][ix] + dy*Gradient[iy][ix]);