Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MAKE SOME NOISE … von Perlin Noise zu Wavelet Noise

Ähnliche Präsentationen


Präsentation zum Thema: "MAKE SOME NOISE … von Perlin Noise zu Wavelet Noise"—  Präsentation transkript:

1 MAKE SOME NOISE … von Perlin Noise zu Wavelet Noise
Von Christian Ritter Seminar Computergrafik SS 2006 Institut für Informatik Johannes Gutenberg Universität Mainz

2 Agenda Grundlagen Motivation Perlin Noise Wavelet Noise
Einsatzmöglichkeiten Christian Ritter, Johannes Gutenberg Universität Mainz

3 Grundlagen … Christian Ritter, Johannes Gutenberg Universität Mainz

4 Grundlagen Frequenz, Wellenlänge, Amplitude
Christian Ritter, Johannes Gutenberg Universität Mainz

5 Grundlagen Fourier-Transformation
Signale können in Elementarschwingungen zerlegt werden (Sinus- und Kosinusfunktionen) Christian Ritter, Johannes Gutenberg Universität Mainz

6 Grundlagen Nyquist-Limit
„Ein analoges Signal muss mit mehr als der doppelten Signalfrequenz abgetastet werden, um aus dem digitalen Abbild des Signals das analoge Ausgangssignal rekonstruieren zu können“ (Internetquelle) Sonst entsteht Aliasing Christian Ritter, Johannes Gutenberg Universität Mainz

7 Motivation … Christian Ritter, Johannes Gutenberg Universität Mainz

8 Motivation Was fehlt? 2006-07-07
Christian Ritter, Johannes Gutenberg Universität Mainz

9 Motivation Ausgangssituation
Viele Strukturen (Wasser, Holz, …) Fraktale (lat. fractus: gebrochen): Muster mit einem hohen Grad an Skaleninvarianz bzw. Selbstähnlichkeit An zwei Punkten ähnlich, aber nicht gleich Texturen geringer Auflösung: Wiederholung erkennbar Realistisch nur durch Texturen hoher Auflösung darstellbar früher: begrenzte Speicher Heute möglich, aber in vielen Fällen unnötig (z.B. 3D Nebelvolumen) Christian Ritter, Johannes Gutenberg Universität Mainz

10 Die optimale NOISE-Funktion soll … Fraktal sein
Motivation Wunsch Die optimale NOISE-Funktion soll … Fraktal sein Stetig differenzierbar (am Besten c-differenzierbar) Leicht beschreibbar Schnell Reproduzierbar Erweiterbar auf weitere Dimensionen Christian Ritter, Johannes Gutenberg Universität Mainz

11 Perlin Noise … Christian Ritter, Johannes Gutenberg Universität Mainz

12 Perlin Noise Geschichte
Benannt nach ihrem Erfinder Ken Perlin „Department of Computer Sience“ New York University 1981 Walt Disney „Tron“ 1983 erste Version einer 3D Noise Funktion 1984 Erste Shader-Sprache 1997 Academy Award for Technical Achievment Christian Ritter, Johannes Gutenberg Universität Mainz

13 Perlin Noise Das Ziel im Blick
Fourieranalyse: komplexes Signal als Summe gewichteter Kosinusfunktionen verschiedener Frequenz Analog: NOISE als Summe gewichteter NOISE-Bänder verschiedener Frequenz Christian Ritter, Johannes Gutenberg Universität Mainz

14 Perlin Noise Berechnung eines Noise-Bandes
Gitter aus Zufallszahlen [0,1] erzeugen Zwischen Zufallszahlen interpolieren Christian Ritter, Johannes Gutenberg Universität Mainz

15 Perlin Noise Zufallszahlen erzeugen
Pseudo-Zufallsgenerator Weist einer ganzen Zahl einen Zufallswert [0,1] zu Reproduzierbar Beispiele: Multiplikationen in endlichen Körper Z/PZ Christian Ritter, Johannes Gutenberg Universität Mainz

16 Perlin Noise Interpolation
Erweiterung des Definitionsbereiches auf reelle Zahlen Methode Lineare Interpolation S-Kurve Interpolation Kosinus Interpolation Kubische Interpolation Christian Ritter, Johannes Gutenberg Universität Mainz

17 Perlin Noise Lineare Interpolation
Zwischen den benachbarten Punkten durch eine Gerade interpoliert Nachteil: nicht stetig differenzierbar Christian Ritter, Johannes Gutenberg Universität Mainz

18 Perlin Noise Kosinus Interpolation
Zum Interpolieren wird die Kosinuskurve verwendet stetig differenzierbar langsam Christian Ritter, Johannes Gutenberg Universität Mainz

19 „Beschleunigung“ und „Verzögerung“ bei Start und Ende
Perlin Noise S - Kurve „Beschleunigung“ und „Verzögerung“ bei Start und Ende weichere Übergänge Stetig differenzierbar Sehr ähnlich der Kosinusinterpolation und dieser vorzuziehen Christian Ritter, Johannes Gutenberg Universität Mainz

20 Perlin Noise Kubische Interpolation
Berücksichtigt 4 Punkte 2 mal stetig differenzierbar rechenaufwändig Christian Ritter, Johannes Gutenberg Universität Mainz

21 Perlin Noise Perlins Ansatz
Wert an jedem Gitterpunkt ist 0 Zufallswert bestimmt den Anstieg an diesem Punkt Vorteil: Frequenzen der Fourieranalyse sind begrenzt auf den Bereich 2^(k+1) bis 2^k Christian Ritter, Johannes Gutenberg Universität Mainz

22 Perlin Noise Zusammenfassung
Komplexes Rauschen durch Addition mehrere NOISE-Bänder verschiedener Gewichtung Sehr variable, sehr intuitiv, aber oft zu granular in der Beschreibung (jedes Band muss beschrieben werden) Christian Ritter, Johannes Gutenberg Universität Mainz

23 Perlin Noise Persistenz
Verdopplung der Frequenz von Band zu Band (1 Oktave) Beschreibung der Amplitudenänderung durch einen konstanten Faktor genannt Persistenz Persistenz: 1 / 4 Persistenz: 1 / 1.41 Christian Ritter, Johannes Gutenberg Universität Mainz

24 Perlin Noise Rauschen in mehreren Dimensionen
Leicht erweiterbar auf mehrere Dimensionen  Zufallszahlen abhängig von allen Dimensionen  Interpolation entlang aller Achsen Man verwendet oft 3D-Noise zum Texturieren von 2D-Oberflächen Christian Ritter, Johannes Gutenberg Universität Mainz

25 Perlin Noise Probleme / Aliasing
Abtastfrequenz liegt unter der Nyquistgrenze Da Frequenzen begrenzt  Bänder können abgeschnitten werden  Geometrie erscheint früher als die Textur Christian Ritter, Johannes Gutenberg Universität Mainz

26 Perlin Noise Probleme / Aliasing
Überblenden Christian Ritter, Johannes Gutenberg Universität Mainz

27 Perlin Noise Probleme / Bandbegrenzung
2D Perlin Noise 2D Schnitt durch ein 3D Perlin Noise Volumen Christian Ritter, Johannes Gutenberg Universität Mainz

28 Wavelet Noise … Christian Ritter, Johannes Gutenberg Universität Mainz

29 Wavelet Noise Einleitung I
„Wavelet Noise“ (SIGGRAPH August 2005) Robert L. Cook Academy Award of Merit (Oscar) „for significant advancements to the field of motion picture rendering as exemplified in Pixar's RenderMan“ Vizevorstand der Softwareentwicklung bei Pixar Animation Studios Tony DeRose Christian Ritter, Johannes Gutenberg Universität Mainz

30 Wavelet Noise Einleitung II
Wavelet („kleine Welle“ – frz. Ondelette) Kein Rauschen kann Aliasing unter allen Umständen verhindern Ziel Verhinderung von Aliasing im Idealfall Aufbau wie Perlin: Summe gewichteter Rauschbänder Christian Ritter, Johannes Gutenberg Universität Mainz

31 Wavelet Noise Funktionsweise eines Renderers
Szene S(x) Filterkern K(x) Christian Ritter, Johannes Gutenberg Universität Mainz

32 Bei zu kleiner Skalierung keinen Einfluss auf das Bild
Wavelet Noise Ziel Bei zu kleiner Skalierung keinen Einfluss auf das Bild Christian Ritter, Johannes Gutenberg Universität Mainz

33 Wavelet Noise Der Idealfall I
Farbe des Oberflächenpunktes wird dominiert durch M(x) Christian Ritter, Johannes Gutenberg Universität Mainz

34 Wavelet Noise Der Idealfall II
Annahme: j=-1 für darstellbares Rauschen, j>=0 sonst Beitrag der Rauschfunktion verschwindet, wenn Aliasing auftreten würde j,l ganze Zahlen Christian Ritter, Johannes Gutenberg Universität Mainz

35 Wavelet Noise Erzeugung eines Bandes
R(x) erzeugen Downsampling zu R-(x) Upsampling zu R-+(x) N(x) = R(x) – R-+(x) Christian Ritter, Johannes Gutenberg Universität Mainz

36 Wavelet Noise Upsampling I
Basisfunktion Phi(x) Funktionen als Linearkombination von um i verschobene Phi(x-i) gebildet werden Alle möglichen Funktionen F(x) erzeugen einen Vektorraum S0 Christian Ritter, Johannes Gutenberg Universität Mainz

37 Wavelet Noise Upsampling II
Erzeuge Vektorraum S1 durch Linearkombination aller Phi(2x-i) Verfeinerbar: Für alle Funktionen F in S0 lassen sich Koeffizienten finden, so dass … Die Koeffizienten lassen sich berechnen durch … Für quadratische B-Splines umfasst diese Summe nur 4 Summanden! Christian Ritter, Johannes Gutenberg Universität Mainz

38 Wavelet Noise Upsampling III
Die neue Koeffizientensequenz ist doppelt so lang, wie die Koeffizienten von F  UPSAMPLING Verfeinerbare Basisfunktionen stellen sicher, dass alle Funktionen in S0 lassen sich in S1 darstellen  S0 eine echte Teilmenge von S1 ist Beispiele für verfeinerbare Basisfunktionen Uniform B-Spline jeden Grades Christian Ritter, Johannes Gutenberg Universität Mainz

39 Wavelet Noise Downsampling I
nicht jede Funktion in S1 ist auch in S0 enthalten, d.h. egal welche Koeffizienten ich in S0 wähle  es liegt ein Detailverlust vor Trennung in einen darstellbaren und einen nicht darstellbaren Teil G-(x) wird durch die „kleinste Quadrate-Methode“ bestimmt Christian Ritter, Johannes Gutenberg Universität Mainz

40 Wavelet Noise Downsampling II
Beste Annäherung von D(x) in S0: alle Koeffizienten = 0  D(x) und alle ganzzahligen Verschiebungen orthogonal zu allen Funktionen in S0 sind Alle Detailfunktionen erzeugen einen Vektorraum: Wavelet-Raum W0 Christian Ritter, Johannes Gutenberg Universität Mainz

41 Wavelet Noise Downsampling III
Die Koeffizienten für G-(x) können mit Hilfe der Wavelet Analysis (insbesondere des sog. Analysis Koeffizienten) berechnet werden Für quadratische B-Splines ist die Summe unendlich lang; fällt aber schnell ab ! Die Koeffizientensequenz für G ist doppelt so lang, wie die Koeffizientensequenz für G-  Downsampling Christian Ritter, Johannes Gutenberg Universität Mainz

42 Wavelet Noise Die Basisfunktion
Als Basisfunktion werden quadratische B-Splines verwendet Ähnlich zu den meisten verwendeten Filterkernen Geringer Grad, lokaler Einfluss  schnell und einfach Erzeugt differenzierbares Rauschen Christian Ritter, Johannes Gutenberg Universität Mainz

43 Wavelet Noise Erzeugung eines Bandes V
R(x) erzeugen Downsampling zu R-(x) Upsampling zu R-+(x) N(x) = R(x) – R-+(x) Christian Ritter, Johannes Gutenberg Universität Mainz

44 Wavelet Noise Ergebnis
Das Rauschband ist so konstruiert, dass es für alle Skalierungen 2^j für j>=0 keinen Beitrag mehr liefert Die Basisfunktion ist so gewählt, dass sie den meisten Filterkernen ähnlich ist Christian Ritter, Johannes Gutenberg Universität Mainz

45 Wavelet Noise Der Nicht-Ideale Fall
j (Skalierung 2^j) und l (Verschiebung) sind ja nicht unbedingt ganze Zahlen Numerische Untersuchungen des Beitrags C(j, 0.5) zeigen: starker abfall bei steigendem j In den meisten realistischen Szenarien arbeitet die Methode gut Christian Ritter, Johannes Gutenberg Universität Mainz

46 Wavelet Noise Ergebnis
2D Wavelet Noise 2D Schnitt durch ein 3D Wavelet Noise Volumen War wohl nichts! Christian Ritter, Johannes Gutenberg Universität Mainz

47 Wavelet Noise Projektion
Bisher: Abtastung des 3D-Volumen Jetzt: das Integral über alle gewichteten Werte der Rauschfunktion entlang einer Geraden orthogonal zur Schnittebene Christian Ritter, Johannes Gutenberg Universität Mainz

48 Wavelet Noise Ergebnis
2D Wavelet Noise 3D Wavelet Noise projiziert auf 2D Christian Ritter, Johannes Gutenberg Universität Mainz

49 Wavelet Noise Ergebnis
Christian Ritter, Johannes Gutenberg Universität Mainz

50 Einsatzmöglichkeiten …
Christian Ritter, Johannes Gutenberg Universität Mainz

51 Einsatzmöglichkeiten
Prozedurale Texturen Holz, Wolken, Feuer, … Modellierung Landschaften, Lindemeyer-Systeme Animationen Partikelsysteme, natürliches Verhalten von Haaren, etc Christian Ritter, Johannes Gutenberg Universität Mainz

52 Voilà tout. Haben Sie Fragen ? Möchten Sie gerne mehr wissen ?
Christian Ritter, Johannes Gutenberg Universität Mainz


Herunterladen ppt "MAKE SOME NOISE … von Perlin Noise zu Wavelet Noise"

Ähnliche Präsentationen


Google-Anzeigen