about
corona-13 is a physically-based renderer that sucks less. it's designed to be modular, minimal, and clear to read. it's written in c11, has next to no
(c, m, dl, pthread)
and mostly optional dependencies (SDL, GL, X11, swscale, avcodec, openvdb) and compiles in about 1.85s.
the name corona-# is a pun on trent reznor's halo series and it's the 13th time i started to write a renderer pretty much from scratch.
features
this system is designed to be slim research code, so it most probably doesn't offer what you're looking for. features include:
- compile time config for faster turnaround times while developing
- clear and simple to use path space api layer
- spectral (no rgb transport supported)
- color managed (input and output color profiles, srgb and adobergb built in, custom monitor matrix+gamma from icc)
- interactive (X11 or GL or netrender via avconv) or batch render modes
- pinned pthread pool for parallel rendering
- ray tracing acceleration structures: qbvh, bih, grid
- geometry: spheres, cylinders, truncated cones, quads, all with motion blur support
- distance field tracing
- geo loaded from preconditioned file format, importer from obj available
- heterogeneous volume scattering (simple voxel grid and openvdb binding)
- both geo and volume data with out of core support
- random numbers: simple one liner, mersenne twister, halton points
- pixel filter: box, bilinear, 4x4 spline, blackman-harris
- path space samplers: pt, ptdl, lt, bdpt+mis, progressive photon mapping
- metropolis (both kelemen's and veach's variants)
- half vector space light transport
- realistic camera lens simulation
- output format: float xyz or linear rec709 rgb in ppm + pfm. you might want to use eu to look at the pfm files
- regression tests for serious features