Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...
Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...
Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Burger: <strong>Gradientenbasierte</strong> <strong>Rauschfunktionen</strong> <strong>und</strong> <strong>Perlin</strong> <strong>Noise</strong> 2<br />
1<br />
1<br />
g u<br />
1 2 3 4 5 6 7 8 9<br />
Abbildung 1: Die Werte der diskreten Zufallsfolge g u (blau) geben die<br />
Steigung der Rauschfunktion noise(x) an den ganzzahligen Positionen x =<br />
u ∈ Z vor (die resultierenden Tangenten sind in magenta angezeigt). Diese<br />
Positionen sind gleichzeitig Nullstellen der Funktion.<br />
zwischen den Werten an den x umgebenden Rasterpunkten p = ⌊x⌋ <strong>und</strong><br />
p+1.<br />
2.1 Gradienten-<strong>Noise</strong><br />
<strong>Perlin</strong> <strong>Noise</strong> ist eine Form von Gradient <strong>Noise</strong>, die Zufallswerte gu definieren<br />
also den Anstieg (gradient) der Funktion noise(x) an den diskreten Punkten<br />
x = u. Die diskreten Gradientenwerte werden von einer Funktion grad(u)<br />
erzeugt, d. h.,<br />
g u = grad(u) ∈ [−1,1].<br />
Dabei istgrad(u) eine Abbildung der ganzen ZahlenZauf reellwertige Pseudo-<br />
Zufallszahlen im Intervall [−1,1], die (so wird angenommen) annähernd<br />
gleichverteilt sind. Diese Abbildung wird üblicherweise mithilfe einer Hash-<br />
Funktion realisiert, wie in Abschn. 2.4 genauer beschrieben wird.<br />
2.1.1 Stückweise, lokale Interpolation<br />
Die Eigenschaften der Rauschfunktion werden maßgeblich von der gewählten<br />
Interpolationsfunktion F bestimmt. Diese sollte nicht nur die oben genannten<br />
Bedingungen erfüllen, sondern auch zu einem visuell guten Ergebnis<br />
führen. In den folgenden Abschnitten geht es daher um die Definition der<br />
Interpolationsfunktion F.<br />
An den diskreten Positionen x = u sind nicht nur die Gradientenwerte<br />
gu vorgegeben, sie sollen zudem auch Nullstellen der Rauschfunktion sein.<br />
Für die Rauschfunktion noise(x) soll also zunächst gelten<br />
noise(u) = 0 <strong>und</strong> noise ′ (u) = g u, (4)<br />
für alle u ∈ Z. Für die lokale Interpolationsfunktion F (Gl. 3) muss daher<br />
gelten:<br />
F(p,gp,gp+1) = 0, F ′ (p,gp,gp+1) = gp,<br />
F(p+1,gp,gp+1) = 0, F ′ (p+1,gp,gp+1) = gp+1.<br />
u<br />
(5)