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> 38<br />
6 Zusammenfassung<br />
Dieser Bericht ist als Einführung <strong>und</strong> Tutorial gedacht, vorwiegend um das<br />
Verständnis <strong>und</strong> die Implementierung von Gradientenrauschen nach der Methode<br />
von Ken <strong>Perlin</strong> zu erleichtern. Die allermeisten der hier gezeigten Zusammenhänge<br />
sind entweder in den zitierten Quellen zu finden oder können<br />
relativ einfach selbst hergeleitet werden, sofern dazu ausreichend Zeit <strong>und</strong><br />
Bereitschaft vorliegt.<br />
Hier nicht berücksichtigt ist der Umstand, das <strong>Perlin</strong> [9] zur Verbesserung<br />
der Orientierungsunabhängikeit beim 3D-Verfahren die Gradienten nicht an<br />
den 8 Eckpunkten des Würfels, sondern an den Mittelpunkten der 12 Kanten<br />
definiert. Die Interpolation der Tangentenwerte erfolgt in der selben Form<br />
wie hier beschrieben. Ausführlichere Hinweise <strong>und</strong> eine Implementierung dazu<br />
findet man in [5]. Ebenfalls nicht berücksichtigt ist „Simplex <strong>Noise</strong>“, die<br />
neuere <strong>und</strong> – in höherdimensionalen Räumen wesentlich effizientere – Variante<br />
von <strong>Perlin</strong>’s Rauschverfahren. Auch dazu ist allerdings kaum publiziertes<br />
Originalmaterial auffindbar, man findet aber wiederum in [5] weiterführende<br />
Informationen <strong>und</strong> einen konkreten Implementierungsvorschlag. Weitere interessante<br />
Online-Quellen zu diesem Thema sind die Seiten von Hugo Elias, 25<br />
Mandelbrot Dazibao 26 <strong>und</strong> Matt Zucker. 27<br />
Eine prototypische Java-Implementierung der hier beschriebenen Algorithmen<br />
(für ImageJ 28 ) findet sich auf der Homepage des Autors (s. Titelseite).<br />
Bei dieser Implementierung wurde allerdings vorrangig Wert auf<br />
gute Lesbarkeit <strong>und</strong> Klarheit gelegt, um die Algorithmen durch Abbildung<br />
in eine konkreten Programmiersprache zu verdeutlichen. Entsprechend zahlreich<br />
sind daher auch die Möglichkeiten zur Erhöhung der Effizienz. Darüber<br />
hinaus sind natürlich Fragen oder Anregungen zu diesem Text immer willkommen.<br />
Literatur<br />
[1] Bourke, Paul: <strong>Perlin</strong> noise and turbulence. Technischer Bericht, University<br />
of Western Australia, January 2000. http://local.wasp.uwa.edu.au/<br />
~pbourke/texture_colour/perlin/.<br />
[2] Burger, Wilhelm <strong>und</strong> Mark J. Burge: Digitale Bildverarbeitung. Springer,<br />
2. Auflage, 2006. www.imagingbook.com.<br />
[3] Burger, Wilhelm <strong>und</strong> Mark J. Burge: Digital Image Processing—An<br />
Algorithmic Introduction using Java. Springer, New York, 2008. www.<br />
imagingbook.com.<br />
25 http://freespace.virgin.net/hugo.elias/models/m_perlin.htm<br />
26 http://www.mandelbrot-dazibao.com<br />
27 http://www.cs.cmu.edu/~mzucker/code/perlin-noise-math-faq.html<br />
28 http://rsb.info.nih.gov/ij/