Cycles: Fix wrong termination criteria in intersect_all functions
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 14 Jul 2016 09:08:24 +0000 (11:08 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 14 Jul 2016 09:26:20 +0000 (11:26 +0200)
commit3637cbbcf8d1b65318aabc11f72e9241b6992812
tree282dad1a0962977bc9200b9c4678218b8bda43fb
parent103a51504372129975e60f57fbf3c983527037eb
Cycles: Fix wrong termination criteria in intersect_all functions

It was possible to miss bounces termination criteria in this functions,
mainly when max_hits was set to 0.

Made the check more robust in traversal functions (which should not
affect performance, it's an operation of same complexity AFAIK).

Also avoid doing ray-scene intersection from shadow_blocked when
limit of transparent bounces was already reached.
intern/cycles/kernel/bvh/bvh_shadow_all.h
intern/cycles/kernel/bvh/bvh_volume_all.h
intern/cycles/kernel/bvh/qbvh_shadow_all.h
intern/cycles/kernel/bvh/qbvh_volume_all.h
intern/cycles/kernel/kernel_shadow.h