Page MenuHome

Fix T92868: Cycles catcher with transparency crashes
ClosedPublic

Authored by Sergey Sharybin (sergey) on Nov 10 2021, 5:25 PM.

Details

Summary

The issue was caused by splitting happening twice.

Fixed by checking for split flag which is assigned to the both states
during split.

The tricky part was to write catcher data at the moment of split: the
transparency and shadow catcher sample count is to be accumulated at
that point. Now it is happening in the intersect_closest kernel.
The downside is that render buffer is to be passed to the kernel, but
the benefit is that extra split bounce check is not needed now.

Had to move the passes write to shadow catcher header, since include
of film/passes.h causes all the fun of requirement to have BSDF
data structures available.

There are 4 tests which will fail with this change. Seems that we
just need to update the reference images after this fix is landed.

Diff Detail

Repository
rB Blender