This fixes a rare case where NaNs could exist inside Cycles. When certain invalid meshes were passed in, Cycles would try too normalize a zero length normal during its setup stage. While it does check against division by zero, it still returns a zero length normal and passes it on to the path tracing kernel. The kernel then operates under the assumption that normals are valid, and in the case of such a zero length normal, would eventually create NaNs that propagate through and result in black pixels. Reviewers: #cycles Subscribers: brecht, sergey Projects: #cycles Differential Revision: https://developer.blender.org/D2008
41 KiB
41 KiB