[Bf-blender-cvs] [f1494ed] master: Cycles: Make SSS intersection closer to regular triangle intersection
Sergey Sharybin
noreply at git.blender.org
Wed Apr 1 18:20:15 CEST 2015
Commit: f1494edf787099d9261f7ab82a66c68ffbe8e727
Author: Sergey Sharybin
Date: Wed Apr 1 21:19:29 2015 +0500
Branches: master
https://developer.blender.org/rBf1494edf787099d9261f7ab82a66c68ffbe8e727
Cycles: Make SSS intersection closer to regular triangle intersection
===================================================================
M intern/cycles/kernel/geom/geom_triangle_intersect.h
===================================================================
diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h
index d3919a0..b29fc2b 100644
--- a/intern/cycles/kernel/geom/geom_triangle_intersect.h
+++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h
@@ -247,13 +247,10 @@ ccl_device_inline void triangle_intersect_subsurface(
/* Calculate scaled z−coordinates of vertices and use them to calculate
* the hit distance.
*/
- const float Az = Sz * A_kz;
- const float Bz = Sz * B_kz;
- const float Cz = Sz * C_kz;
- const float T = U * Az + V * Bz + W * Cz;
-
- if((xor_signmast(T, sign_mask) < 0.0f) ||
- (xor_signmast(T, sign_mask) > tmax * xor_signmast(det, sign_mask)))
+ const float T = (U * A_kz + V * B_kz + W * C_kz) * Sz;
+ const float sign_T = xor_signmast(T, sign_mask);
+ if((sign_T < 0.0f) ||
+ (sign_T > tmax * xor_signmast(det, sign_mask)))
{
return;
}
More information about the Bf-blender-cvs
mailing list