Fix T53012: Shadow catcher creates artifacts on contact area

The issue was caused by light sample being evaluated to nan at some point.
This is root of the cause which is to be fixed, but is very hard to trace down
especially via ssh (the issue only happens on AVX2 release build). Will give it
a closer look when back to my AVX2 machine.

For until then this is a good check to have anyway, it corresponds to what's
happening in regular radiance sum.
This commit is contained in:
Sergey Sharybin 2018-01-22 12:38:27 +01:00
parent 417170159a
commit c3237cdc13
1 changed files with 4 additions and 0 deletions

View File

@ -668,6 +668,10 @@ ccl_device_inline float path_radiance_sum_shadow(const PathRadiance *L)
{
float path_total = average(L->path_total);
float path_total_shaded = average(L->path_total_shaded);
if(UNLIKELY(!isfinite_safe(path_total))) {
kernel_assert(!"Non-finite total radiance along the path");
return 0.0f;
}
if(path_total != 0.0f) {
return path_total_shaded / path_total;
}