LightGraph is an efficient way of estimating multiple scattering in discrete high resolution heterogeneous participating media. The approach is based on stochastically generated graphs that estimate how light propagates through the volume using shortest path finding. This new method tries to provide a way of achieving high quality photorealistic multiple scattering effect at a fraction of the computational cost of commonly used techniques in visual effects. The goal is not to be physically accurate nor it is to run in real-time, but to be a fast and reliable solution to allow quick turnarounds from a practical standpoint. The project is built on top of OpenVDB using their ray tracer implementation as a base.
- Flexible command line scene description
- Multiple light types supported (directional, point, environment)
- Environment light supports Exr maps with importance sampling
- Render OpenVDB files with multiple scattering within seconds
- Fully multithreaded with Intel TBB
- Outputs AOVs for single scattering, multiple scattering and emission
- Can output the LightGraph geometry as ASCII files
- Camera samples support (anti-aliasing)
- Shader with color ramp to remap temperature grids as emission color
- Spectrally varying scattering coefficient (wavelength dependency)
LightGraph is built on top of OpenVDB, which means that building the program will first require to build and install OpenVDB. The instructions regarding this can be found in their build documentation. It should be straight forward to compile LightGraph after that.
The scene directory contains example scene descriptions that can be run once the project is compiled. Those scenes use the same settings as the images rendered in the video above. The vdb for the cloud scene can be downloaded here thanks to Disney Animation.