SDF-Grid inverse rendering in plain C using Enzyme AD
  • C 98.2%
  • Shell 1.8%
Find a file
2026-08-07 22:43:34 +03:00
stb SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
.gitignore SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
adam.h Narrow band and Readme 2026-08-07 22:43:34 +03:00
build.sh Initial commit 2026-07-31 20:21:29 +03:00
fastsweep.c SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
fastsweep.h SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
helpers.h SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
main.c Narrow band and Readme 2026-08-07 22:43:34 +03:00
README.md Narrow band and Readme 2026-08-07 22:43:34 +03:00
sdf.c SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
sdf.h SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
sdf_grid.c SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
sdf_grid.h SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00
types.h SDF-Grid inverse rendering 2026-08-07 21:12:43 +03:00

SDF-Grid Inverse Renderer

Example implementation of the SDF-Grid inverse rendering algorithms.

Enzyme is used for automatic differentiation. ADAM optimizer implementation is used for parameters optimization.

Build

See build.sh for compiling process or use it directly ./build.sh.

Use

Run ./main.bin.

Parameters and defaults:
--iterations 100 — number of inverse rendering optimisation loop iterations.
--band 0.5 — narrow band scale relative to voxel diagonal.
--samples 1 — number of rendering samples.
--render-resolution 64 64 — rendering resolution in pixels.
--sdf-resolution 64 64 64 — grid resolution in the numbers of points.
--preset 64 — shortcut for setting rendering and grid resolutions to equal number.