# 2019.03.14 -> 2022.10.06 -> # signed distance field compositing # *spatial culling shader code _matrix = Matrix.TR(oriel.pos, oriel.rot) _dim = oriel.dimensions MAX_STEPS = 256± MAX_DIST = 100± BoxSD(pos, dim): q = abs(pos) - dim step = length(max(q, 0.0)) step += min(max(q.x, max(q.y, q.z)), 0.0) return step Raymarch(origin, dir): origin = mul(origin, _matrix) dir = mul(dir, _matrix) dist = 0.0 for (0..MAX_STEPS): pos = origin + dist * dir step = BoxSD(pos, _dim / 2.0) if (step < 0.0001 or dist > MAX_DIST): then break loop dist += step return dist YourPixelShader(): pos = pixel.worldposition dir = normalize(pos - cam) // cull around dist = Raymarch(cam, dir) clip(100 - (dist + 1)) // cull between oriel = cam + dist * dir clip(dist(cam, pos) - dist(cam, oriel)) ...