3D Perlin Noise Texturen
Perlin Noise als prozedurale Beschreibung einer Rausch-Funktion.
Einfaches Basis-Rauschen mit einer Trägerfrequenz:

Das Perlin Basis-Rauschen verwendet zufällig variierende Gradienten. Der Einfachheit halber verwenden wir im Folgenden variierende Absolutwerte nach einem Schema von Hugo Elias:
Generierung von Basis-Rauschen einer Trägerfrequenz durch Interpolation von zufälligen Datenpunkten im Abstand einer halben Periode.
Zwischen den einzelnen Datenpunkten wird interpoliert. Es stehen folgende Interpolationsarten zur Auswahl zwischen zwei Datenpunkten a und b auf dem Bereich $x\in[0,1]$.
Lineare Interpolation: graphs by Hugo Elias
{
return(a*(1-x) + b*x);
}
Cosinus Interpolation:
{
double ft = x*3.1415927;
f = (1 - cos(ft)) * 0.5;
return(a*(1-f) + b*f);
}
Kubische Interpolation mit dem Polynom $p(x)=ax^3+bx^2+cx+d$:
// v1 = the point a
// v2 = the point b
// v3 = the point after b
double cubic_interpolate(double v0, double v1, double v2, double v3, double x)
{
double a = (v3 - v2) - (v0 - v1);
double b = (v0 - v1) - a;
double c = v2 - v0;
double d = v1;
return(d+(c+(b+a*x)*x)*x);
}
Perlin Noise ist die Summe von Noise-Funktionen mit zunehmender Trägerfrequenz und abnehmender Amplitude. Typischerweise wird die Frequenz verdoppelt und die Amplitude halbiert. Auch bekannt unter der sogenannten Turbulenzfunktion (turbulence).







3D Perlin Noise: blender.org
3D Fractal-Textur als Betrag von Perlin Noise:

3D Marmor-Textur als Sinus von Perlin Noise:
