Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "MAKE SOME NOISE … von Perlin Noise zu Wavelet Noise Von Christian Ritter Seminar Computergrafik SS 2006 Institut für Informatik Johannes Gutenberg Universität."—  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 Von Christian Ritter Seminar Computergrafik SS 2006 Institut für Informatik Johannes Gutenberg Universität Mainz

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

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

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

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

6 Christian Ritter, Johannes Gutenberg Universität Mainz 6 / 53 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 -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

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

8 Christian Ritter, Johannes Gutenberg Universität Mainz 8 / 53 Motivation Was fehlt?

9 Christian Ritter, Johannes Gutenberg Universität Mainz 9 / 53 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) 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)

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

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

12 Christian Ritter, Johannes Gutenberg Universität Mainz 12 / 53 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 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

13 Christian Ritter, Johannes Gutenberg Universität Mainz 13 / 53 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 Fourieranalyse: komplexes Signal als Summe gewichteter Kosinusfunktionen verschiedener Frequenz Analog: NOISE als Summe gewichteter NOISE-Bänder verschiedener Frequenz

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

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

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

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

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

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

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

21 Christian Ritter, Johannes Gutenberg Universität Mainz 21 / 53 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 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

22 Christian Ritter, Johannes Gutenberg Universität Mainz 22 / 53 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) 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)

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

24 Christian Ritter, Johannes Gutenberg Universität Mainz 24 / 53 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 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

25 Christian Ritter, Johannes Gutenberg Universität Mainz 25 / 53 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 Abtastfrequenz liegt unter der Nyquistgrenze Da Frequenzen begrenzt Bänder können abgeschnitten werden Geometrie erscheint früher als die Textur

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

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

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

29 Christian Ritter, Johannes Gutenberg Universität Mainz 29 / 53 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 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

30 Christian Ritter, Johannes Gutenberg Universität Mainz 30 / 53 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 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

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

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

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

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

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

36 Christian Ritter, Johannes Gutenberg Universität Mainz 36 / 53 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 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

37 Christian Ritter, Johannes Gutenberg Universität Mainz 37 / 53 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!

38 Christian Ritter, Johannes Gutenberg Universität Mainz 38 / 53 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 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

39 Christian Ritter, Johannes Gutenberg Universität Mainz 39 / 53 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

40 Christian Ritter, Johannes Gutenberg Universität Mainz 40 / 53 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

41 Christian Ritter, Johannes Gutenberg Universität Mainz 41 / 53 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

42 Christian Ritter, Johannes Gutenberg Universität Mainz 42 / 53 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 Als Basisfunktion werden quadratische B-Splines verwendet -Ähnlich zu den meisten verwendeten Filterkernen -Geringer Grad, lokaler Einfluss schnell und einfach -Erzeugt differenzierbares Rauschen

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

44 Christian Ritter, Johannes Gutenberg Universität Mainz 44 / 53 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 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

45 Christian Ritter, Johannes Gutenberg Universität Mainz 45 / 53 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 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

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

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

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

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

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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen