A simple scene with some artifacts. This geometry is from Ariel simulator.
Originally A small physically based render to implement volumetric algorithms. Currently, a platform to implement seemingly non-trivial or non-conventional but (probably) useless render architectures and algorithms.
The ultimate and not yet achieved goal for this render is to integrate as diverse techniques within a consistent, fast, aggressive, yet elegant structure as possible ;) In a word, going a step further from conventional PBRT practice!
Anyway, this is solely a personal project aiming to have fun and simultaneously practice my coding skills.
Unix Makefile
is recommended. Use make help
to get more information.
src/
:common/
: Some header files that could be used in both CPU and GPU backends.experimental/
: Some files that perform some unstable optimizations.external/
: Those libraries that could optimize some portions of the renderer.gpu/
: Some code that implements the interface specified incommon/
.main/
: A directory that contains the executables.materials/
: Some material implementations that have the common interface.optix/
: OptiX backend
assets/
: Some scene settings for bothmitsuba
and this renderer.tests/
: Unit tests
- Integrate Embree as leaf nodes to accelerate intersection.
- Support XML scene loading
- Integrate OpenImageDenoise
- Add low-discrepancy sampler
- Add naive OptiX backend(WIP)
- Replace OpenVDB with NanoVDB to implement other tracking methods.(WIP)
- Add vectorized code generated by
ispc
to optimize extremity calculations, e.g.,EstimateDirect()
, BRDF evaluations, Light Sampling. - Implement some BVH algos.
- Add Path Guiding Integrator