This project illustrates light rendering in 2D with C.
All samples output PNGs with svpng.
License: public domain.
Use Monte Carol integration and ray marching of signed distance field (SDF) to render a emissive circle.
Source code: basic.c
Uniform sampling (64 samples per pixel):
Uniform sampling with different number of samples per pixel:
Stratified sampling (64 samples per pixel):
Jittered sampling (64 samples per pixel):
Various sampling method side-by-side comparison (64 samples per pixel)::
Source code: csg.c
Use union operation for creating multiple shapes:
Various CSG operations on two circles:
Source code: shapes.c
Examples of various shapes defined by SDF:
Source code: reflection.c
Test scene with two boxes:
Visualization of SDF gradient, which is approximated by central difference:
Reflection via recursive tracing:
Concave mirror scene generates caustics effect: