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 2017-10-06 17:27:34 +05:00
parent 0d3c8d0701
commit a950af8e24
Notes: blender-bot 2023-02-14 07:18:54 +01:00
Referenced by issue #53683, 2.79a release
Referenced by issue #53012, Shadow catcher creates artifacts on contact area
1 changed files with 5 additions and 1 deletions

View File

@ -557,7 +557,11 @@ ccl_device_inline void path_radiance_sum_shadowcatcher(KernelGlobals *kg,
float path_total = average(L->path_total);
float shadow;
if(path_total == 0.0f) {
if(UNLIKELY(!isfinite_safe(path_total))) {
kernel_assert(!"Non-finite total radiance along the path");
shadow = 0.0f;
}
else if(path_total == 0.0f) {
shadow = L->shadow_transparency;
}
else {