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> 24<br />
p 2<br />
y<br />
p 0<br />
p 6<br />
p 4<br />
D<br />
z<br />
Abbildung 13: Lexikographische Ordnung der Eckpunkte des Einheitswürfels<br />
in 3D: p 0 = p 000, p 1 = p 100, p 2 = p 010, ..., p 7 = p 111.<br />
Die Funktion interpolate(x,w,k) interpoliert die 2 N−k Werte in w für die<br />
Dimension k <strong>und</strong> liefert einen neuen Vektor mit der halben Länge von w.<br />
Dabei wird angenommen, dass die Werte in w nach ansteigender Dimension<br />
„lexikographisch“ sortiert angeordnet sind, also<br />
w (N−k) = (w0,w1,...wi,wi+1,...w 2 N −k−1)<br />
(siehe Abb. 13). Beispielsweise ergeben sich im dreidimensionalen Fall (N =<br />
3), mit den ursprünglichen 2 3 = 8 Vektorelementen wj = wxyz (0 ≤ j < 8),<br />
die nachstehende Interpolationsfolge <strong>und</strong> Zwischenergebnisse:<br />
p 1<br />
p 3<br />
w (3) = (w0,w1,w2,w3,w4,w5,w6,w7)<br />
= (w000,w100,w010,w110<br />
,w001,w101,w011,w111<br />
<br />
↓<br />
w00<br />
<br />
↓<br />
w10<br />
w (2) = (w00,w10,w01,w11<br />
<br />
↓<br />
w0<br />
w (1) = (w0,w1)<br />
<br />
↓<br />
w<br />
<br />
↓<br />
w1<br />
)<br />
x<br />
p 7<br />
p 5<br />
<br />
↓<br />
w01<br />
<br />
↓<br />
Im ersten Interpolationsschritt wird also nach der x-Koordinate (über 4 Wertepaare),<br />
im zweiten nach der y-Koordinate (über 2 Wertepaare) <strong>und</strong> abschließend<br />
nach der z-Koordinate (über 1 Wertepaar) interpoliert, mit dem<br />
Endergebnis w. Die lexiographische Anordnung gewährleistet, dass die zusammengehörenden<br />
Wertepaare innerhalb des Vektors immer nacheinander<br />
angeordnet sind. Für zwei aufeinanderfolgende Ergebnisvektoren w (N−k) ,<br />
w11<br />
)