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> 33<br />
1 Bit 2 Bit 3 Bit<br />
4 Bit 5 Bit 6 Bit<br />
Abbildung 15: Beispiele für Permutations-Hashing mit variierender Anzahl<br />
von Bits je Gradientenrichtung. Bei 1 Bit gibt es nur 2 mögliche Gradientenwerte<br />
mit −1 oder +1; bei 6 Bits treten 64 linear verteilte Werte im Intervall<br />
[−1,1] auf.<br />
Für die Realisierung der Funktion hash(i) in Gl. 79 zur Abbildung auf<br />
das Intervall [0,1] ist lediglich das Ergebnis der obigen Integer-Hashfunktion<br />
entsprechend zu skalieren, d. h.,<br />
hash(i) =<br />
1<br />
·hashInt(i), (96)<br />
maxInt<br />
mit maxInt = 2 31 −1 = 2147483647 <strong>und</strong> hash(i) ∈ [0,1].<br />
5.2.1 Anwendung im mehrdimensionalen Fall<br />
Zur Erzeugung des zugehörigen Hashwerts für einen n-mehrdimensionalen<br />
Gitterpunkt müssen alle n Koordinatenwerte dieses Punkts in der Hashfunktion<br />
berücksichtigt werden. Beim Permutation-Hashing wird dies (wie in Gl.<br />
86, 93 gezeigt) durch aufeinanderfolgende Anwendung der Permutation auf<br />
die Koordinaten bewirkt. Das könnte man in ähnlicher Form natürlich auch<br />
durch aufeinanderfolgende Anwendung einer Integer-Hashfunktion erreichen.<br />
Einfacher ist es, die Rasterkoordinaten zunächst in geschickter Weise zu<br />
einem Integer-Wert zu kombinieren („pre-hashing“) <strong>und</strong> dann die eigentliche<br />
Integer-Hashfunktion nur auf diesen Wert anzuwenden. Für den dreidi-