This post is a simple step by step description of the main points in our program.
Setup scene
Build BVH over the objects
for #number of passes
Trace the initial beams from the lightsources
Calculate scattering events
Build BVH over the beams
for #vertical pixels
for #horizontal pixels
Check for intersection with object BVH
Collect intersected beams from the beam BVH
calculate light from material
calculate light contribution from beams
Setup scene
Build BVH over the objects
for #number of passes
Trace the initial beams from the lightsources
Calculate scattering events
Build BVH over the beams
for #vertical pixels
for #horizontal pixels
Check for intersection with object BVH
Collect intersected beams from the beam BVH
calculate light from material
calculate light contribution from beams