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> 22<br />
Jeder Punkt q j ist daher ein N-dimensionaler Vektor mit Elementen aus<br />
{0,1} (von denen es genau 2 N verschiedene gibt), d. h.,<br />
p 0 = p 0 +q 0 = p 0 +(0,0,0,...,0) T ,<br />
p 1 = p 0 +q 1 = p 0 +(1,0,0,...,0) T ,<br />
p 2 = p 0 +q 2 = p 0 +(0,1,0,...,0) T ,<br />
p 3 = p 0 +q 3 = p 0 +(1,1,0,...,0) T ,<br />
. . .<br />
p2N−1 = p0 +q2N−1 = p0 +(1,1,1,...,1) T .<br />
(68)<br />
Die Elemente des Vektors q j entsprechen offensichtlich dem binären Bitmuster<br />
der Zahl j, d. h.,<br />
q j[k] = bitk(j) = j ÷2 k mod 2, (69)<br />
für 0 ≤ j < 2N , 0 ≤ k < N. 12 Wir verwenden nachfolgend (in Alg. 4–<br />
5) die Funktion qj = vertex(j,N) zur Generierung der Eckkoordinaten des<br />
N-dimensionalen Einheitswürfels.<br />
Die den 2N Gitterpunkten pj zugehörigen Tangentialebenen sind (siehe<br />
Gl. 65) definiert durch die linearen Funktionen<br />
hp (x) = g j T p ·<br />
j <br />
x−p j , (70)<br />
oder, in verkürzter Schreibweise, 13<br />
für j = 0...2 N −1.<br />
4.1 Interpolation der Tangentenebenen<br />
hj(x) = g T j · <br />
x−p j , (71)<br />
Den eigentlichen Wert der N-dimensionalen Rauschfunktion an einer bestimmten<br />
Position x = T x0,x1,...xN−1 erhalten wir durch Interpolation<br />
der Tangentenfunktionen hj(x) sämtlicher 2N umliegender Rasterpunkte pj, das sind<br />
w(x) = <br />
w0,w1,...,w 2N−1 , mit wj = hj(x). (72)<br />
Diese Interpolation wird jedoch nicht in einem Schritt durchgeführt, sondern<br />
(wie bereits im zweidimensionalen Fall demonstriert) nacheinander für jede<br />
einzelne der N Raumdimensionen.<br />
12 a÷b steht für die ganzzahlige Division a durch b (Quotient von a,b).<br />
13 Die verkürzte Schreibweise hj(x) – anstelle von hpj (x) – für die Tangentialfunktion<br />
im Rasterpunkt p j sowie g j – anstelle von g pj – für die Gradientenvektoren dient nur zur<br />
besseren Lesbarkeit.