diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-09-17 15:17:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-09-17 15:21:17 +0300 |
commit | 3cee28ebf3c808e511255095aa68d24305721198 (patch) | |
tree | b393ca5657f4c30abed8faee08be27cf88901424 /intern/cycles/kernel/geom | |
parent | c4bcb6a479c0a416fc66204b95017436bc0e2975 (diff) |
Fix T46143: Faces missing with GPU render
Epsilon was quite arbitrary for GPU, replaced with checking for zero-sized faces.
It should solve both original report and the new one. After the release we can check
why GPU doesn't produce accurate math here and go to the root of the issue.
Diffstat (limited to 'intern/cycles/kernel/geom')
-rw-r--r-- | intern/cycles/kernel/geom/geom_triangle_intersect.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h index 65f6c9af441..ba309a1dc53 100644 --- a/intern/cycles/kernel/geom/geom_triangle_intersect.h +++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h @@ -179,7 +179,7 @@ ccl_device_inline bool triangle_intersect(KernelGlobals *kg, float4 a = tri_b - tri_a, b = tri_c - tri_a; if(len_squared(make_float3(a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, - a.x*b.y - a.y*b.x)) < 1e-16f) + a.x*b.y - a.y*b.x)) == 0.0f) { return false; } |