Commit: 7a4696197dbb088a94d82edd78304e8fc32bd6e7
Author: Stefan Werner
Date:   Thu Aug 17 15:05:48 2017 +0200
Branches: master
https://developer.blender.org/rB7a4696197dbb088a94d82edd78304e8fc32bd6e7

Cycles: Fix for a division by zero that could happen with solid angle triangle 
light sampling

===================================================================

M       intern/cycles/kernel/kernel_light.h

===================================================================

diff --git a/intern/cycles/kernel/kernel_light.h 
b/intern/cycles/kernel/kernel_light.h
index d747c452de2..cd05e29ca54 100644
--- a/intern/cycles/kernel/kernel_light.h
+++ b/intern/cycles/kernel/kernel_light.h
@@ -954,7 +954,11 @@ ccl_device_forceinline void 
triangle_light_sample(KernelGlobals *kg, int prim, i
 
                const float3 U = safe_normalize(C - dot(C, A) * A);
 
-               const float q = ((v * t - u * s) * cos_alpha - v) / ((v * s + u 
* t) * sin_alpha);
+               float q = 1.0f;
+               const float det = ((v * s + u * t) * sin_alpha);
+               if(det != 0.0f) {
+                       q = ((v * t - u * s) * cos_alpha - v) / det;
+               }
                const float temp = max(1.0f - q*q, 0.0f);
 
                const float3 C_ = safe_normalize(q * A + sqrtf(temp) * U);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to