Computergrafik

Rauschen

Motivation

Rauschen ist in der Computergrafik eine wesentliche Voraussetzung zur Darstellung von u.a.:

  • Wolken
  • Berge
  • Lichteffekten
  • und vielen weiteren Effekten in der Natur

Alle Bilder sind gemeinfrei

Erzeugen von «Chaos» I

Bild: Patricio Gonzalez Vivo

Erzeugen von «Chaos» II

Bild: Patricio Gonzalez Vivo

Erzeugen von «Chaos» III

Bild: Patricio Gonzalez Vivo

Geht es noch besser?

Value-Noise (Werterauschen)

Bild: Thorsten Thormählen

Bisher haben wir jedem Pixel einen pseudo-zufälligen Wert gegeben. 

 

Bei Value-Noise ist das Vorgehen etwas komplexer:

  1. Ein grobes Gitter wird erstellt
  2. Jeder Gitterpunkt bekommt Zufallswert
  3. Zwischen Gitterpunkten wird interpoliert
     

➔ Dadurch entstehen glatte Übergänge

Value-Noise (Interpolation)

Bilder: Thorsten Thormählen

Value-Noise (Beispiel)

⌨️ Aufgabe

Passen Sie den vorhergehenden Code dahingehend an, dass ein farbliches Rauschen dargestellt wird.
 

Seien Sie kreativ 🎨 !

5 Min

Geht es noch besser?

Ken Perlin

Image: Ken Perlin

  • Mathematiker & Computergrafiker
  • forschte zum Thema Rauschen

 

🏆 Oscar für technische Verdienste (1997):„For the development of Perlin Noise, a technique used to produce natural appearing textures on computer generated surfaces for motion picture visual effects“

 

Ken Perlin hat mit seinen Arbeiten zum Thema Rauschen ("Perlin-Rauschen") wesentlich zum Fortschritt in der Computergrafik beigetragen.

Gradient-Noise

Bilder: Thorsten Thormählen

  • für jeden Gitterpunkt (🔴) werden zufällige Gradientenvektoren       erstellt
  • Wert f(p) für p (🔵) ergibt sich aus Skalarprodukt des Gradienten      am Gitterpunkt (🔴) und dem Richtungs-vektor        zu p (🔵)

Gradient-Noise (Beispiel)

Grenzen von Gradient-Noise

  • Gradient-Noise bzw. Perlin-Noise erreicht sehr gute visuelle Ergebnisse
    • wird in vielen Anwendungen eingesetzt
  • Einziger Nachteil (gilt auch für Value-Noise):
    • Der Aufwand bei >2 Dimensionen steigt drastisch
      Gitterstruktur mit Dimension N hat Aufwand
  • Für hochdimensionale Echtzeitanwendungen sind
    andere Strukturen besser geeignet  
2^N

Simplex-Noise

  • Ken Perlin hat Perlin-/Gradient-Noise weiterentwickelt
  • Wesentliche Änderungen:
    • Nutzung von Dreieck-Gittern (anstelle von viereckigen)
    • (linearer) Aufwand von N (konkret N+1) 
      • ​Vergleich: Value-/Gradient-Noise
  • ​​Verfahren kann noch einfacher in Hardware (GPU) implementiert werden
  • Visuelle Ergebnisse konnten auch verbessert werden
    • Die Laufzeit-Effizienz ist aber der wesentliche Vorteil
2^N

Simplex-Noise (Beispiel)

✅ Zusammenfassung

  • Rauschen ist eine wichtige Basis in Computergrafik
    • z.B. für Wolken, Küstenlinien, Berge
       
  • Wesentliche Verfahren:

Gradient-/Perlin-Noise

Value-Noise

Simplex-Noise