A toy raymarcher written with raylib, supporting a small but effective feature-set for creating 3D scenes using a Constructive Solid Geometry (CSG) paradigm. Currently, the project supports:
- Programmatic and Visual Interfaces for Describing Scenes
- Four SDF Primitives, along with four join operations
- JIT 'compilation' (w/o static analysis) of GPU Kernels
- Drop-in replacement of alternate compute engines via an abstraction for the rendering backend
Currently, some features being built out/planned for the future are:
- A CUDA backend, with inverse rendering support based on reparametrizing integrals
- A BVH structure for the GLSL backend for accelerating render times in dense scenes
- Saving/loading scenes
- A triangle primitive, and import of tri-meshes
- Surface reconstruction from the implicit function
- Gizmos for manipulating objects
Acknowledgement: Inigo Quilez's material on SDF rendering techniques has been of great help while putting together this project.