Rendering & toepassingen

Fractaalreliëf, normaalvectoren en licht

Een fractal die er 3D uitziet, hoeft geen volumetrische fractal te zijn. Een tweedimensionaal scalair veld kan worden geïnterpreteerd als hoogte, gedifferentieerd in normaalvectoren en gearceerd als een oppervlak.

Roze driedimensionaal fractaalreliëf op een zwarte achtergrond
3D-reliëf in MandelKit: hoogte, normaalvectoren en belichting zetten scalaire fractaalgegevens om in een ruimtelijke weergave.Afbeelding: Björn Kindler / MandelKit · MandelKit · Eigene Darstellung · Own work

Kies het hoogteveld

Vloeiende iteratie, potentiaal, afstand of een samengesteld effect kunnen hoogte opleveren. Niet-lineaire schaal en begrenzing bepalen of fijne grensdetails een richel, een plateau of ruis worden. Het gekozen veld is eerder een artistieke interpretatie dan een fysiek terrein.

Het aantal iteraties, het gladde potentieel en afstandsvelden zorgen voor zeer uiteenlopende hoogtes. Ruwe iteraties creëren treden, een continu potentieel zorgt voor zachtere terrassen en afstandsvelden voor scherpe grensruggen. De hoogte moet vóór de belichting worden genormaliseerd en de schaal ervan moet worden opgeslagen. Anders kan een verandering in het kleurverloop het reliëf beïnvloeden, ook al verwacht de gebruiker alleen een kleurverandering.

Normalen van aangrenzende steekproeven

Eindige verschillen schatten horizontale en verticale hellingen. Hun vectorproduct of een gelijkwaardige gradiëntformule levert een normale richting op. De bemonsteringsstap moet de schaal van de uitvoerpixels volgen; anders verandert de schijnbare scherpte bij sterk inzoomen of bij export met hoge resolutie.

Normalen ontstaan uit verschillen tussen aangrenzende hoogtemetingen. Hun sterkte hangt af van de pixelafstand en de zoomfactor; een niet-geschaald vast verschil zorgt ervoor dat hetzelfde reliëf bij een andere resolutie steiler lijkt. Centrale verschillen zijn symmetrischer dan eenzijdige. Tegelranden hebben halo-metingen nodig om lichtnaden te voorkomen.

Richtings- en puntlicht

Richtingslicht gebruikt overal één richting, zoals een verre lichtbron. Puntlicht is afhankelijk van de vector en de afstand tot elk oppervlaktepunt en kan afnemen. Termen als omgevingslicht, diffuus licht, spiegelend licht en occlusie-achtig licht moeten duidelijke bedieningselementen en actieve statussen weergeven.

Richtingslicht heeft één richting per pixel. Puntlicht heeft ook een positie en afstand tot elk oppervlaktepunt nodig, wat leidt tot wisselende richtingen en verzwakking. Een UI-schakelaar die alleen het label wijzigt terwijl de shader nog steeds een richtingsuniform leest, kan ‘Point’ nooit activeren. Het toestandsmodel, de uniformindeling en de shader-tak moeten hetzelfde lichttype hebben.

Bronnen en verdere literatuur

Dit artikel vat de volgende gespecialiseerde bronnen samen in de oorspronkelijke bewoordingen. Geraadpleegd en redactioneel beoordeeld 12 augustus 2026.

  1. The Science of Fractal ImagesSpringer
  2. Metal overviewApple Developer Documentation