Procedurele texturen worden gegenereerd uit wiskundige functies in plaats van vastgelegd uit foto's of met de hand geschilderd. Ze zijn resolutie-onafhankelijk (je kunt ze op elke resolutie evalueren), inherent naadloos (bij gebruik van tegelbare ruis) en oneindig variabel (het wijzigen van een seed geeft een geheel nieuw resultaat). Elke textuurgenerator op Texturize maakt achter de schermen gebruik van procedurele technieken.
Ruisfuncties: De Basis
De meeste procedurele texturen beginnen met een ruisfunctie — een wiskundige functie die pseudo-willekeurige maar vloeiende, continue waarden produceert over een coördinatenruimte. In tegenstelling tot willekeurige getalgeneratoren die ongecorreleerde witte ruis produceren, produceren textuurruis-functies waarden die vloeiend variëren en organisch ogende kleurverlopen en vlekken creëren.
Waarderuis
De eenvoudigste aanpak. Willekeurige waarden worden toegewezen aan gehele rasteringspunten en tussenliggende waarden worden geïnterpoleerd (meestal met kubische of kwinktische interpolatie). Waarderuis is snel maar heeft de neiging zichtbare rasteruitgelijnde artefacten te produceren omdat de extremen altijd op rasteringspunten voorkomen. Het werkt goed voor eenvoudige wolken of als basis voor complexere effecten.
Perlin-Ruis
Ken Perlin’s gradiëntruis (1983, verbeterd in 2002) wijst willekeurige gradiëntvectoren toe aan rasteringspunten en berekent inwendige producten met de afstand tot het evaluatiepunt. Het resultaat heeft nulwaarden op rasteringspunten (geen extremen), wat het rasteruitgelijnde artefactenprobleem elimineert. Perlin-ruis is de industriestandaard voor organische texturen — wolken, terrein, marmeraderen, watercaustiek.
Simplex-Ruis
Ook ontwikkeld door Ken Perlin (2001), simplex-ruis gebruikt een driehoekig (simplex) raster in plaats van een rechthoekig. Dit vermindert het aantal gradiëntevaluaties van 4 (2D) of 8 (3D) naar 3 (2D) of 4 (3D), waardoor het sneller is voor hogere dimensies. Simplex-ruis heeft ook minder directionele artefacten dan klassieke Perlin-ruis. Moderne implementaties zoals OpenSimplex2 vermijden de originele octrooizorgen.
Fractionele Brownse Beweging (FBM)
Een enkele octaaf van ruis produceert gladde, klonterige vormen. Oppervlakken in de echte wereld hebben details op meerdere schalen: een berg heeft een brede vorm, middelmatige richels en fijne scheuren. FBM laagt meerdere octaven van ruis op bij toenemende frequentie en afnemende amplitude om dit meerschalige detail te simuleren.
De typische formule: fbm(p) = ruis(p) + 0.5 × ruis(2p) + 0.25 × ruis(4p) + ... Elke octaaf verdubbelt de frequentie (lacunariteit = 2.0) en halveert de amplitude (winst = 0.5). Het aantal octaven bepaalt het niveau van fijn detail — 4 tot 8 octaven is gangbaar. Meer octaven voegen rekenkundige kosten toe maar verminderen in visuele impact boven 8.
Domeinvervorming
Domeinvervorming voert de uitvoer van één ruisfunctie in de coördinaten van een andere: f(p) = fbm(p + fbm(p)). Dit vervormt het ruisveld en creëert organische, vloeiende vormen die lijken op wervelend marmer, lavastroom of versleten houtnerf. Het koppelen van meerdere niveaus van vervorming produceert steeds complexere en onvoorspelbare patronen.
Onze Marmer Generator gebruikt domeinvervorming om realistische aderpatronen te creëren. De Lava Generator koppelt vervorming met kleurhertoewijzing om gesmolten stroom te simuleren.
Andere Procedurele Primitieven
Voronoi / Worley-Ruis
Worley-ruis (ook wel cellulaire ruis genoemd) genereert patronen op basis van afstand tot willekeurig verspreide zaadpunten. De F1-functie (afstand tot het dichtstbijzijnde punt) creëert celachtige patronen: gebarsten modder, schubben, kinderhoofdjes. De F2−F1-functie produceert aderachtige netwerken. Probeer de Voronoi Generator om met deze patronen te experimenteren.
Golf- en Streepfuncties
Sinus- en cosinusfuncties creëren regelmatige strepen. Gecombineerd met ruis voor verplaatsing produceren ze houtnerf (concentrische ringen vervormd door ruis), stofweefsels en golfpatronen. De Hout Generator gebruikt verplaatste sinusoïdale ringen om groeipatronen te modelleren.
Procedurele Ruis Naadloos Maken
De standaard techniek evalueert 2D-ruis op het oppervlak van een hoger-dimensionale torus. Voor 2D naadloze texturen wijs je (x, y) toe aan vier coördinaten op een 4D-torus: (cos(2πx/b), sin(2πx/b), cos(2πy/h), sin(2πy/h)) en evalueer je 4D-ruis. Dit garandeert perfecte omwikkeling zonder mengingsartefacten. Dit is rekenkundig zwaarder dan niet-tegelbare ruis maar produceert wiskundig perfecte naden.
Hoe Texturize Procedurele Generatie Gebruikt
Elke generator in de Texturize bibliotheek is gebouwd op zaad-gebaseerde Perlin-ruis, FBM, domeinvervorming, Voronoi of wiskundige patroonsfuncties. De zaad-gebaseerde aanpak betekent dat elke configuratie reproduceerbaar is — deel dezelfde parameters en seed en je krijgt elke keer exact dezelfde textuur. Alle ruisevaluatie gebruikt tegelbare varianten zodat elke uitvoer gegarandeerd naadloos is.