diff options
author | Stefan Werner <stefan.werner@tangent-animation.com> | 2019-03-20 14:27:35 +0300 |
---|---|---|
committer | Stefan Werner <stefan.werner@tangent-animation.com> | 2019-03-20 14:30:33 +0300 |
commit | 63cb789551537d8311f9f57e34876c11d692c6b5 (patch) | |
tree | cb8ff00fd51d4f0f7d327e668880dbbcbc7b1223 /intern/cycles/bvh/bvh_embree.cpp | |
parent | 5eb38df4afac1f53d4e34b5fcdf70d9980018c7f (diff) |
Cycles: Made Embree ignore curve intersections with SSS.
Diffstat (limited to 'intern/cycles/bvh/bvh_embree.cpp')
-rw-r--r-- | intern/cycles/bvh/bvh_embree.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/intern/cycles/bvh/bvh_embree.cpp b/intern/cycles/bvh/bvh_embree.cpp index 4b5c7152594..fa9993d8ac3 100644 --- a/intern/cycles/bvh/bvh_embree.cpp +++ b/intern/cycles/bvh/bvh_embree.cpp @@ -149,6 +149,13 @@ static void rtc_filter_occluded_func(const RTCFilterFunctionNArguments* args) break; } + /* Ignore curves. */ + if(hit->geomID & 1) { + /* This tells Embree to continue tracing. */ + *args->valid = 0; + break; + } + /* See triangle_intersect_subsurface() for the native equivalent. */ for(int i = min(ctx->max_hits, ctx->ss_isect->num_hits) - 1; i >= 0; --i) { if(ctx->ss_isect->hits[i].t == ray->tfar) { |