make some noise … von perlin noise zu wavelet noise von christian ritter seminar computergrafik ss...

Post on 06-Apr-2016

215 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MAKE SOME NOISE … von Perlin Noise zu Wavelet Noise

Von Christian Ritter

Seminar Computergrafik SS 2006Institut für InformatikJohannes Gutenberg Universität Mainz

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 2 / 53

Agenda

• Grundlagen• Motivation• Perlin Noise• Wavelet Noise• Einsatzmöglichkeiten

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 3 / 53

Grundlagen …

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 5 / 53

Grundlagen

Fourier-Transformation• Signale können in Elementarschwingungen

zerlegt werden (Sinus- und Kosinusfunktionen)

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 7 / 53

Motivation …

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 8 / 53

Motivation

Was fehlt?

2006-07-07 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)

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 10 / 53

Motivation

WunschDie optimale NOISE-Funktion soll …• Fraktal sein• Stetig differenzierbar (am Besten c-

differenzierbar)• Leicht beschreibbar• Schnell • Reproduzierbar• Erweiterbar auf weitere Dimensionen

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 11 / 53

Perlin Noise …

2006-07-07 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

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 14 / 53

Perlin Noise

Berechnung eines Noise-Bandes• Gitter aus Zufallszahlen [0,1] erzeugen• Zwischen Zufallszahlen interpolieren

2006-07-07 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

2006-07-07 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

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 18 / 53

Perlin Noise

Kosinus Interpolation• Zum Interpolieren wird die

Kosinuskurve verwendet• stetig differenzierbar• langsam

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 20 / 53

Perlin Noise

Kubische Interpolation• Berücksichtigt 4 Punkte• 2 mal stetig differenzierbar• rechenaufwändig

2006-07-07 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

2006-07-07 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)

2006-07-07 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

Persistenz: 1 / 1.41

Persistenz: 1 / 4

2006-07-07 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

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 26 / 53

Perlin Noise

Probleme / Aliasing

• Überblenden

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 27 / 53

Perlin Noise

Probleme / Bandbegrenzung• 2D Perlin Noise

• 2D Schnitt durch ein 3D Perlin Noise Volumen

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 28 / 53

Wavelet Noise …

2006-07-07 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

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 31 / 53

Wavelet Noise

Funktionsweise eines Renderers

• Szene S(x) • Filterkern K(x)

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 32 / 53

Wavelet Noise

Ziel• Bei zu kleiner Skalierung keinen Einfluss auf das Bild

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 33 / 53

Wavelet Noise

Der Idealfall I• Farbe des Oberflächenpunktes wird dominiert durch M(x)

2006-07-07 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

• Annahme: j=-1 für darstellbares Rauschen, j>=0 sonst

2006-07-07 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)

2006-07-07 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

2006-07-07 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!

2006-07-07 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

2006-07-07 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

2006-07-07 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

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 42 / 53

Wavelet Noise

Die BasisfunktionAls Basisfunktion werden quadratische B-Splines

verwendet- Ähnlich zu den meisten verwendeten Filterkernen- Geringer Grad, lokaler Einfluss schnell und

einfach- Erzeugt differenzierbares Rauschen

2006-07-07 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)

2006-07-07 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

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 46 / 53

Wavelet Noise

Ergebnis• 2D Wavelet Noise

• 2D Schnitt durch ein 3D Wavelet Noise Volumen

War wohl nichts!

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 48 / 53

Wavelet Noise

Ergebnis• 2D Wavelet Noise

• 3D Wavelet Noise projiziert auf 2D

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 49 / 53

Wavelet Noise

Ergebnis

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 50 / 53

Einsatzmöglichkeiten …

2006-07-07 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

2006-07-07 Christian Ritter, Johannes Gutenberg Universität Mainz 52 / 53

Voilà tout.

• Haben Sie Fragen ?• Möchten Sie gerne mehr wissen ?

top related