Prozedurale Texturen werden aus mathematischen Funktionen generiert, statt aus Fotos aufgenommen oder von Hand gemalt zu werden. Sie sind auflösungsunabhängig (Sie können sie in jeder Auflösung auswerten), inhärent nahtlos (bei Verwendung von kachelbarem Rauschen) und unendlich variierbar (das Ändern eines Seeds erzeugt ein völlig neues Ergebnis). Jeder Textur-Generator auf Texturize verwendet unter der Haube prozedurale Techniken.
Rauschfunktionen: Das Fundament
Die meisten prozeduralen Texturen beginnen mit einer Rauschfunktion — einer mathematischen Funktion, die pseudo-zufällige, aber glatte und kontinuierliche Werte über einen Koordinatenraum erzeugt. Im Gegensatz zu Zufallszahlengeneratoren, die unkorreliertes weißes Rauschen erzeugen, produzieren Textur-Rauschfunktionen Werte, die sich gleichmäßig verändern und organisch wirkende Verläufe und Kleckse erzeugen.
Value Noise
Der einfachste Ansatz. Zufällige Werte werden ganzzahligen Gitterpunkten zugewiesen, und Zwischenwerte werden interpoliert (typischerweise mit kubischer oder quintischer Interpolation). Value Noise ist schnell, neigt aber zu sichtbaren gitterausgerichteten Artefakten, da die Extremwerte immer auf Gitterpunkten auftreten. Es eignet sich gut für einfache Wolken oder als Basis für komplexere Effekte.
Perlin-Rauschen
Ken Perlins Gradient-Rauschen (1983, verbessert 2002) weist Gitterpunkten zufällige Gradientenvektoren zu und berechnet Skalarprodukte mit dem Abstand zum Auswertungspunkt. Das Ergebnis hat Nullwerte an Gitterpunkten (keine Extreme), was das Problem der gitterausgerichteten Artefakte beseitigt. Perlin-Rauschen ist der Industriestandard für organische Texturen — Wolken, Terrain, Marmoradern, Wassercaustiken.
Simplex-Rauschen
Ebenfalls von Ken Perlin entwickelt (2001), verwendet Simplex-Rauschen ein dreieckiges (Simplex-)Gitter anstelle eines rechteckigen. Dies reduziert die Anzahl der Gradientenauswertungen von 4 (2D) oder 8 (3D) auf 3 (2D) oder 4 (3D), was es für höhere Dimensionen schneller macht. Simplex-Rauschen hat auch weniger direktionale Artefakte als klassisches Perlin-Rauschen. Moderne Implementierungen wie OpenSimplex2 vermeiden die Patentbedenken des Originals.
Fraktionale Brownsche Bewegung (FBM)
Eine einzelne Oktave von Rauschen erzeugt glatte, kleckige Formen. Reale Oberflächen haben Details auf mehreren Maßstäben: Ein Berg hat eine breite Form, mittlere Grate und feine Risse. FBM schichtet mehrere Oktaven von Rauschen mit zunehmender Frequenz und abnehmender Amplitude, um dieses mehrmaßstäbliche Detail zu simulieren.
Die typische Formel: fbm(p) = rauschen(p) + 0,5 × rauschen(2p) + 0,25 × rauschen(4p) + ... Jede Oktave verdoppelt die Frequenz (Lakunarität = 2,0) und halbiert die Amplitude (Gewinn = 0,5). Die Anzahl der Oktaven steuert den Detailgrad — 4 bis 8 Oktaven sind üblich. Mehr Oktaven erhöhen die Rechenkosten, haben aber über 8 hinaus kaum noch sichtbare Auswirkungen.
Domain Warping
Domain Warping speist die Ausgabe einer Rauschfunktion in die Koordinaten einer anderen: f(p) = fbm(p + fbm(p)). Dies verzerrt das Rauschfeld und erzeugt organische, fließende Formen, die wie wirbelnder Marmor, Lavaströme oder verwitterte Holzmaserung aussehen. Das Verketten mehrerer Warpingebenen erzeugt zunehmend komplexe und unvorhersehbare Muster.
Unser Marmor-Generator verwendet Domain Warping, um realistische Adermuster zu erzeugen. Der Lava-Generator verkettet Warping mit Farb-Remapping zur Simulation von Schmelzfluss.
Weitere prozedurale Primitiven
Voronoi / Worley-Rauschen
Worley-Rauschen (auch zelluläres Rauschen genannt) erzeugt Muster basierend auf dem Abstand zu zufällig verteilten Saatpunkten. Die F1-Funktion (Abstand zum nächsten Punkt) erzeugt zellähnliche Muster: rissiger Schlamm, Schuppen, Kopfsteinpflaster. Die F2−F1-Funktion erzeugt adernähnliche Netzwerke. Probieren Sie den Voronoi-Generator, um mit diesen Mustern zu experimentieren.
Wellen- und Streifenfunktionen
Sinus- und Kosinusfunktionen erzeugen regelmäßige Streifen. Kombiniert mit Rauschen für Versatz erzeugen sie Holzmaserung (konzentrische Ringe, durch Rauschen verzerrt), Gewebemuster und Wellenmuster. Der Holz-Generator verwendet versetzte sinusförmige Ringe zur Modellierung von Wachstumsmustern.
Prozedurales Rauschen nahtlos machen
Die Standardtechnik wertet 2D-Rauschen auf der Oberfläche eines höherdimensionalen Torus aus. Für 2D-nahtlose Texturen bilden Sie (x, y) auf vier Koordinaten eines 4D-Torus ab: (cos(2πx/w), sin(2πx/w), cos(2πy/h), sin(2πy/h)) und werten 4D-Rauschen aus. Dies garantiert perfektes Wrapping ohne Blending-Artefakte. Dies ist rechenintensiver als nicht-kachelbares Rauschen, erzeugt aber mathematisch perfekte Nähte.
Wie Texturize prozedurale Generierung verwendet
Jeder Generator in der Texturize-Bibliothek basiert auf seeded Perlin-Rauschen, FBM, Domain Warping, Voronoi oder mathematischen Musterfunktionen. Der seed-basierte Ansatz bedeutet, dass jede Konfiguration reproduzierbar ist — teilen Sie dieselben Parameter und Seeds, und Sie erhalten jedes Mal exakt dieselbe Textur. Alle Rauschauswertungen verwenden kachelbare Varianten, sodass jede Ausgabe garantiert nahtlos ist.