Präsentation herunterladen
Veröffentlicht von:Lutgardis Weltz Geändert vor über 10 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.