Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...
Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...
Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Burger: <strong>Gradientenbasierte</strong> <strong>Rauschfunktionen</strong> <strong>und</strong> <strong>Perlin</strong> <strong>Noise</strong> 5<br />
noise4(x)<br />
1<br />
1<br />
1 2 3<br />
Abbildung 3: Anwendung der ursprünglichen <strong>Perlin</strong>-Interpolationsfunktion<br />
[7] nach Gl. 17 für die ersten vier Gradientenwerte aus Abb. 1. An den ganzzahligen<br />
Positionen ist der Funktionswert jeweils null <strong>und</strong> der Anstieg der<br />
Funktion enspricht dem Wert g i der Zufallsfolge in Abb. 1 (a). Der Graph in<br />
(b) zeigt die selbe Funktion mit vergrößertem Maßstab in der y-Richtung.<br />
aufweist, wobei a2 noch frei wählbar ist. Für a2 = −3g1 ergibt sich die<br />
Funktion<br />
F4(˙x,g0,g1) = 2(g0 −g1)· ˙x 4 −(3g0 −5g1)· ˙x 3 −3g1 · ˙x 2 +g0 · ˙x (16)<br />
oder, in der von <strong>Perlin</strong> verwendeten Schreibweise,<br />
F4(˙x,g0,g1) = g0 · ˙x+ 3˙x 2 −2˙x 3 · g1 ·(˙x−1)−g0 · ˙x . (17)<br />
Abb. 3 zeigt ein Beispiel für die in dieser Form interpolierte Funktion unter<br />
Verwendung der ersten vier Gradientenwerte aus Abb. 1. Die zweite Ableitung<br />
(Krümmung) von F4() bezüglich ˙x beträgt an den Randstellen übrigens<br />
F ′′<br />
4(0,g0,g1) = −6g1 <strong>und</strong> F ′′<br />
4(1,g0,g1) = 6g0, (18)<br />
ist also im Allgemeinen ungleich null. 3 Dies ist nicht unproblematisch, da sich<br />
dadurch an den Übergängen zwischen benachbarten Segmenten die Krümmung<br />
der Funktion sprungartig ändern kann (s. Abschnitt 2.1.6).<br />
2.1.5 Interpolation der Tangenten<br />
Im eindimensionalen Fall spezifiziert jeder der vorgegebenen Gradientenwerte<br />
g i eine Tangente im Punkt i, also eine Gerade mit der Steigung g i, die die<br />
x-Achse an der Position i schneidet. Diese Tangentengerade wird durch die<br />
lineare Funktion<br />
hi(x) = g i·(x−i) (19)<br />
3 Interessanterweise ist also die Krümmung der Funktion an den Randpunkten des [0,1]-<br />
Intervalls nur vom jeweils gegenüber liegenden Gradientenwert abhängig.<br />
x