Worley noise, ook bekend als Voronoi noise of cellular noise, is een techniek voor procedurele textuurgeneratie die organische, celachtige patronen oplevert. In tegenstelling tot op gradients gebaseerde noisefuncties zoals Perlin noise, is Worley noise in de kern gebaseerd op ruimtelijke relaties tussen willekeurig verdeelde feature points.
Hoe Worley Noise Werkt
Het algoritme begint met het opdelen van de ruimte in een grid en het plaatsen van willekeurige feature points in elke cel. Voor elk willekeurig samplepunt in de ruimte wordt de noise-waarde bepaald door de afstanden tot nabijgelegen feature points te berekenen. Deze op afstand gebaseerde aanpak creëert natuurlijke cellulaire verdelingen, vergelijkbaar met biologische celstructuren of gebarsten oppervlakken.
Het basisproces bestaat uit het doorzoeken van de omliggende gridcellen rond een samplepunt, het vinden van de dichtstbijzijnde feature points en het gebruiken van deze afstanden om de uiteindelijke noise-waarde te berekenen. Deze ruimtelijke opdeling zorgt voor het karakteristieke cellulaire uiterlijk dat Worley noise onderscheidt van andere procedurele noisefuncties.
Afstandsmetriek en Variaties
Worley noise biedt verschillende op afstand gebaseerde variaties die duidelijk verschillende patronen opleveren:
- F1 (First Distance): Gebruikt de afstand tot het dichtstbijzijnde feature point. Dit creëert vloeiende cellulaire gebieden met duidelijke grenzen, ideaal voor steenstructuren, gebarsten aarde of celmembranen.
- F2 (Second Distance): Gebruikt de afstand tot het op één na dichtstbijzijnde feature point. Dit levert een ander patroon op met meer variatie in celgroottes en -vormen.
- F2-F1 (Distance Difference): Trekt de eerste afstand af van de tweede, waardoor uitgesproken celgrenzen of edge-detectie-effecten ontstaan. Deze variatie is bijzonder geschikt voor het creëren van aders, scheuren of netwerkachtige structuren.
Veelvoorkomende Toepassingen
Worley noise blinkt uit in het genereren van texturen die cellulaire of gefragmenteerde patronen nodig hebben. De toepassingen bestrijken meerdere domeinen binnen computer graphics en procedurele generatie:
Oppervlaktexturen
Het cellulaire karakter van Worley noise maakt het ideaal voor het creëren van realistische steen-, marmer- en rotsoppervlakken. De F1-metriek produceert gladde steen met natuurlijke variatie, terwijl F2-F1 de aders en scheuren vormt die je in marmer of verweerde oppervlakken ziet. Ook watercaustics en schuimpatronen profiteren van de organische verdeling van Worley noise.
Organische materialen
Biologische oppervlakken zoals huidporiën, schubben en cellulaire structuren lenen zich van nature goed voor Worley-noise. De afstandsgebaseerde aanpak van het algoritme weerspiegelt natuurlijke groeipatronen waarbij cellen uitzetten totdat ze naburige cellen raken, wat realistische organische texturen oplevert.
Procedurele generatie
In game development en terreingeneratie helpt Worley-noise bij het creëren van biomegrenzen, kaarten voor grondstofverdeling en territoriale indelingen. De cellulaire structuur segmenteert de ruimte op natuurlijke wijze in afzonderlijke regio’s, wat het waardevol maakt voor procedurele wereldgeneratie waar duidelijke grenzen tussen gebieden gewenst zijn.
Verschillen met Perlin-noise
Hoewel beide procedurele noise-functies zijn, werken Worley- en Perlin-noise op fundamenteel verschillende principes en leveren ze contrasterende resultaten op:
Perlin-noise gebruikt gradientvectoren op roosterpunten om via interpolatie vloeiende, stromende patronen te creëren. Het produceert continue, wolkachtige texturen met natuurlijk ogende turbulentie. De output wordt gekenmerkt door zachte overgangen en organische flow, waardoor het ideaal is voor terrein-heightmaps, wolken en natuurlijke fenomenen die continue variatie vereisen.
Worley-noise daarentegen creëert discrete cellulaire regio’s op basis van de nabijheid tot feature points. In plaats van vloeiende gradients ontstaan duidelijke grenzen en celachtige structuren. De patronen hebben heldere scheidingen en gefragmenteerde kenmerken, waardoor ze geschikt zijn voor materialen met cellulaire of gebarsten eigenschappen.
Implementatie-overwegingen
Het implementeren van Worley-noise vereist zorgvuldige aandacht voor performance. Het algoritme moet voor elk samplepunt meerdere gridcellen doorzoeken, waardoor het rekenintensiever is dan gradient-gebaseerde noise. Optimalisatietechnieken zijn onder meer spatial hashing om de zoekruimte te verkleinen, het cachen van feature point-posities en GPU-parallelisatie voor real-time toepassingen.
De dichtheid van feature points beïnvloedt het uiteindelijke uiterlijk sterk. Meer punten creëren kleinere, talrijkere cellen, terwijl minder punten grotere cellulaire regio’s opleveren. Met deze parameter kunnen kunstenaars de schaal en granulariteit van de resulterende texture sturen, van fijnkorrelige huidporiën tot grote steenblokken.
