Simplex Noise

Methode zum Aufbau einer n-dimensionalen Rauschfunktion

Simplex Noise (engl.) ist eine Methode zum Aufbau einer n-dimensionalen Rauschfunktion, vergleichbar Perlin Noise, jedoch mit einem geringeren Rechenaufwand, vor allem in höheren Dimensionen.

Ken Perlin entwickelte den Algorithmus im Jahr 2001[1], um die Grenzen der klassischen Rauschfunktion zu umgehen, vor allem in höheren Dimensionen.

Die Vorteile des Simplex Noise gegenüber Perlin Noise:

  • geringere Rechenkomplexität und weniger Multiplikationen
  • skaliert in höheren Dimensionen (4D, 5D). Bei weniger Rechenaufwand ist die Komplexität für Dimensionen, statt der der klassischen Noise[2]
  • keine spürbaren Richtungsartefakte (ist isotrop)
  • gut definierte und kontinuierliche Gradienten, die günstig berechnet werden können
  • einfach in Hardware zu implementieren.

Während klassisches Rauschen zwischen den Werten aus den umliegenden Hypergrid-Endpunkten interpoliert (d. h. Norden, Süden, Osten und Westen in 2D), teilt Simplex Noise den Raum in Simplizes, d. h. n-dimensionale Dreiecke, zwischen denen interpoliert wird. Dies verringert die Anzahl der Datenpunkte. Während ein Hyperwürfel in n Dimensionen Ecken hat, besitzt ein Simplex in n Dimensionen nur n+1 Ecken in den Abmessungen. Die Dreiecke sind in 2D gleichseitig, aber in höheren Dimensionen sind die Simplizes nur annähernd regelmäßig.

Simplex Noise ist nützlich für Computergrafikanwendungen, in denen Rauschen in der Regel über 2, 3, 4 oder möglicherweise 5 Dimensionen berechnet wird. Für höhere Dimensionen sind -Kugeln mit -Simplex-Ecken nicht dicht genug bemessen. Dadurch verringert sich der Träger der Funktion auf Null in großen Teilen des Raumes.

Quellen Bearbeiten

Einzelnachweise Bearbeiten

  1. Ken Perlin: Noise hardware. (PDF; 494 kB) In: Marc Olano (Hrsg.): SIGGRAPH 2002 Course 36 Notes. Real-Time Shading Languages. 2001 (Echtzeit-Shading-Kurs der SIGGRAPH).
  2. Ken Perlin: Making Noise. Abgerufen am 24. Februar 2014 (aus einem Vortrag der GDCHardcore, 9. Dezember 1999, engl.).