From f54a98a1c56e40f9d9d2c493fe2086e92da1150d Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 3 Jun 2016 10:34:21 +0200 Subject: Cycles: Simplify check for degenerated faces on GPU Still not sure how to properly solve the issue, needs some trickery to get actual optimized values from intersection function (using printf() avoids some optimization and makes stuff render correct). For the time being let's just simplify check. --- intern/cycles/kernel/geom/geom_triangle_intersect.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'intern/cycles') diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h index d2957ad5474..4e2f46d58d3 100644 --- a/intern/cycles/kernel/geom/geom_triangle_intersect.h +++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h @@ -160,15 +160,10 @@ ccl_device_inline bool triangle_intersect(KernelGlobals *kg, #endif { #ifdef __KERNEL_GPU__ - 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)) == 0.0f) - { + if(A == B && B == C) { return false; } #endif - /* Normalize U, V, W, and T. */ const float inv_det = 1.0f / det; isect->prim = triAddr; -- cgit v1.2.3