

Overview
This project explores real-time rendering of procedurally defined geometry using signed distance fields (SDFs) combined with physically based shading. Scene geometry is constructed from analytic distance functions and rendered via raymarching, enabling complex, smoothly blended forms without traditional meshes.
Inspired by the gentle, curved shapes of friendly jellycats, I decided to build two structurally similar characters using SDFs.
SDF & Subsurface Scattering
The project represents scene geometry using signed distance fields (SDFs) and renders them via sphere-marching raymarching. Rays advance through space by stepping the distance to the nearest surface until an intersection is found. Complex models are built by procedurally combining multiple SDF primitives using spatial transformations and boolean operations, enabling smooth, continuous geometry with minimal memory overhead. Material properties are assigned per region of the SDF, allowing a single object to contain varied surface characteristics.
Subsurface scattering is approximated using an SDF-based thinness estimate suitable for real-time rendering. Surface thinness is inferred by probing the SDF in the direction opposite the viewer to estimate how quickly light would exit the object from the back side. Thinner regions allow more light transmission.
This thinness value modulates diffuse irradiance to simulate light bleeding through plastic materials, producing a soft glow when illuminated from behind. The effect is attenuated for metallic surfaces and controlled through artist-tunable parameters governing intensity, spread, and falloff. The subsurface contribution is added on top of standard physically based shading, enhancing realism while remaining computationally lightweight.
Building Jellycats
Here are the dragon and dino jellycats with their reference images. The SDFs are composed of various shapes and transformations detailed in IQ’s distance functions blog. Shapes I used include links (for the dragon ears and dino spikes), capped torus (arms), rounded cylinders (feet), and more. The jellycats also have various material properties, like metallic eyes and matte bodies.

Additional Fun: Repeating Characters

Using grid-based SDF repetition, I made infinitely repeating cells that alternate between the dragon and dino jellycats based on cell index parity.