08.10.2013 Aufrufe

Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...

Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...

Gradientenbasierte Rauschfunktionen und Perlin Noise - Campus ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!