cgolchert / LightGraph

Efficient Multiple Scattering in Participating Media using Shortest Path Finding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LightGraph

Efficient Multiple Scattering in Participating Media using Shortest Path Finding

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.

Main Features

  • 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)

Building the Project

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.

Rendering

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.

Acknowledgments

  • OpenVDB - Open Volume DataBase
  • PBRT - Physically Based Rendering
  • PVR - Production Volume Rendering

About

Efficient Multiple Scattering in Participating Media using Shortest Path Finding

License:Mozilla Public License 2.0


Languages

Language:C++ 97.5%Language:Shell 2.1%Language:CMake 0.4%