This replaces sequential ray moving followed with scene intersection with single BVH traversal, which gives us all possible intersections.
Original patch by Sergey.
What I changed:
- Update for latest master
- Implemented code in kernel_path_subsurface_update_volume_stack()
- Compile fix for GPU (geom_bvh_volume.h, line 105)
CPU works as expected, checked with 3 scenes:
- Default cube with volume shader and camera inside. ~same rendertime as unpatched.
- bmps.blend with volume shader on the mesh, camera inside. ~10% faster (58s -> 52s).
- Also tested with blend file from T39823, that still works ok too. Did not compare performance here.
GPU should compile in theory, but CUDA 6.5 gives me a ACCESS_VIOLATION error and dies.