Een gebakken gesigneerd afstandsveld is een vooraf berekend raster van afstandssamples dat een vorm benadert waarvan de afstandsfunctie niet als een compacte formule kan worden uitgedrukt. In plaats van op elk querypunt een analytische expressie te evalueren, sample je de echte afstand eenmalig op elk rasterpunt, sla je de samples op en reconstrueer je een benaderde afstand tijdens runtime via interpolatie. Het raster wordt de representatie van het veld.
Dit is de standaardaanpak wanneer de brongeometrie geen wiskundige primitieve is: letterglyphs, vernietigbaar terrein, gescande 3D-modellen en handgemaakte polygonenmeshes. Voor vormen die wel analytische SDF’s hebben, zie de volledige tutorial over gesigneerde afstandsvelden .
Hoe Baking Werkt
Het kernidee is eenvoudig. Plaats een regelmatig raster over de brongeometrie. Bereken op elk rasterpunt de echte gesigneerde afstand tot het dichtstbijzijnde oppervlak. Sla die waarden op. Wanneer je later de afstand op een willekeurige positie nodig hebt, lees je de omliggende rastersamples en interpoleer je ertussen.
De visualisatie doorloopt dit proces stap voor stap. Een polygoonvorm ligt onder een sample-raster. Elk rasterpunt slaat de gesigneerde afstand tot de dichtstbijzijnde polygoonrand op, rood gekleurd binnenin, blauw buiten en wit op de grens. Druk op play om de per-cel evaluatie in scanline-volgorde te bekijken. Een stippellijn loopt van het huidige rasterpunt naar de dichtstbijzijnde rand, zodat je precies kunt zien hoe elke afstand wordt berekend.
De gekleurde overlay toont bilineaire interpolatie die het veld reconstrueert uit die discrete samples. Let op de gestippelde polygoonomtrek die over de overlay heen is gelegd: hij onthult waar de interpolatie afwijkt van de echte randen. Bij lage resolutie rondt de gereconstrueerde nulcontour hoeken af en vervaagt dunne details. Naarmate je de resolutie verhoogt, volgt het veld de oorspronkelijke randen nauwkeuriger en neemt het informatieverlies af.
Resolutie en Nauwkeurigheid
De afweging is geheugen versus nauwkeurigheid, en die is fors. Het verdubbelen van de rasterresolutie in 2D vermenigvuldigt het aantal samples met 4; in 3D met 8. Een 32³-volume-raster slaat 32.768 samples op. Een 256³-raster slaat meer dan 16 miljoen samples op. De meeste toepassingen kiezen een resolutie die binnen hun budget past en accepteren de resulterende benaderingsfout.
Beweeg over elk rasterpunt in de visualisatie om de coördinaten en de berekende gesigneerde afstand te zien. Het verschil tussen de gesamplede waarde op een rasterpunt en de geïnterpoleerde waarde op een nabijgelegen tussenpositie is waar de benaderingsfout leeft.
Hoeken zijn altijd het lastigst. De echte gesigneerde afstand naar een hoek verandert abrupt van hellingsrichting wanneer je de bissectrice kruist. Bilineaire interpolatie kan alleen gladde mengsels van de vier omliggende samplewaarden produceren, dus rondt het onvermijdelijk de hoek af. Hogere resolutie verkleint de afrondingszone maar elimineert deze nooit helemaal. Dit is een fundamentele beperking van uniform raster-samplen.
Gesamplede Velden en de SDF-Pipeline
Zodra een veld is gebakken, past het in dezelfde downstream pipeline als een analytische SDF. CSG-operaties zoals unie, doorsnede en aftrekking gebruiken alleen scalaire waarden op elk punt, dus werken ze identiek op gesamplede velden. Oppervlaktenormalen kunnen nog steeds worden geschat met eindige verschillen over naburige rastersamples. Ray marching kan nog steeds door het veld stappen.
Het enige praktische verschil is stapveiligheid. Een analytische SDF garandeert de afstand tot het dichtstbijzijnde oppervlak, wat sphere tracing veilig maakt met stapgroottes gelijk aan de veldwaarde. Bilineaire interpolatie van rastersamples behoudt die exacte-afstandsgarantie niet, dus ray marchers hebben ruimere veiligheidsmarges nodig bij het doorlopen van gesamplede velden. De geïnterpoleerde afstand moet worden behandeld als een conservatieve ondergrens in plaats van een exacte waarde.
Toepassingen
Valve introduceerde gebakken gesigneerde afstandsvelden in de mainstream graphics met hun SIGGRAPH-paper uit 2007 over alpha-geteste vectortextuurvergroting. Letterglyphs worden eenmalig gebakken in een afstandstextuur, en hardware-bilineaire interpolatie reconstrueert scherpe, anti-aliased randen bij elke vergroting zonder hoge-resolutie bitmaps op te slaan. Dezelfde techniek is nu standaard in hoogwaardige tekst- en UI-rendering.
In 3D genereert Unreal Engine 5 gesigneerde afstandsvelden van statische driehoeksmeshes naar sparse voxel grids. Deze mesh-afstandsvelden sturen afstandsveld-schaduwen, ambient occlusion en collisiedetectie in de engine. De baking-stap wordt offline uitgevoerd tijdens het maken van content, dus de runtimekosten bestaan alleen uit rasteropzoekingen en interpolatie.
Fysica-engines gebruiken ook gebakken SDF’s voor collisievragen tussen complexe meshes. Het raster wordt meestal gebakken op een grovere resolutie dan renderingsrasters, waarbij ruimtelijke nauwkeurigheid wordt ingeruild voor rekensnelheid, en elke frame opnieuw gebakken voor vervormbare objecten.
Voorbij Uniforme Rasters
Twee veelvoorkomende uitbreidingen pakken de beperkingen van uniform samplen aan.
Adaptief gesamplede afstandsvelden (ADF’s) vervangen het uniforme raster door een octree die samples concentreert nabij oppervlaktekenmerken en grovere cellen gebruikt in vlakke gebieden. Dit vermindert geheugenverspilling terwijl detail behouden blijft waar het ertoe doet. De afweging is doorloopcomplexiteit: het opvragen van een ADF vereist het navigeren door een boomstructuur in plaats van het indexeren van een platte array, wat moeilijker te versnellen is op fixed-function GPU-hardware.
Multi-channel gesigneerde afstandsvelden (MSDF’s) slaan afstanden naar meerdere nabije randen per rastercel op, met extra kleurkanalen in een textuur. Tijdens interpolatie levert elk kanaal een afstandskandidaat voor een andere rand, en de uiteindelijke afstand is het minimum over de kanalen. Dit behoudt scherpe hoeken die een single-channel SDF zou afronden, ten koste van 3× of 4× het textuurgeheugen. MSDF’s zijn standaard in hoogwaardige tekstweergave en worden steeds vaker gebruikt voor vectorgraphics op GPU’s.
Beide technieken bouwen voort op hetzelfde baking-principe: sample de echte afstand waar mogelijk, sla het resultaat op en reconstrueer tijdens runtime. Zodra de basis van het uniforme raster helder is, zijn deze uitbreidingen logische vervolgstappen.