[Bf-blender-cvs] [51b274a] master: Fix T48818: Objects with alpha maps cast wrong ray shadows in BI

Sergey Sharybin noreply at git.blender.org
Tue Jul 12 15:40:48 CEST 2016


Commit: 51b274a6be5d59c7009fd3f439821d1e15b72709
Author: Sergey Sharybin
Date:   Tue Jul 12 15:40:40 2016 +0200
Branches: master
https://developer.blender.org/rB51b274a6be5d59c7009fd3f439821d1e15b72709

Fix T48818: Objects with alpha maps cast wrong ray shadows in BI

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

M	source/blender/render/intern/raytrace/rayobject.cpp

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

diff --git a/source/blender/render/intern/raytrace/rayobject.cpp b/source/blender/render/intern/raytrace/rayobject.cpp
index f511042..2104315 100644
--- a/source/blender/render/intern/raytrace/rayobject.cpp
+++ b/source/blender/render/intern/raytrace/rayobject.cpp
@@ -145,8 +145,8 @@ MALWAYS_INLINE int isec_tri_quad(float start[3], const struct IsectRayPrecalc *i
 	if (isect_ray_tri_watertight_v3(start, isect_precalc, face->v1, face->v2, face->v3, &l, uv)) {
 		/* check if intersection is within ray length */
 		if (l > -RE_RAYTRACE_EPSILON && l < *lambda) {
-			r_uv[0] = uv[0];
-			r_uv[1] = uv[1];
+			r_uv[0] = -uv[0];
+			r_uv[1] = -uv[1];
 			*lambda = l;
 			return 1;
 		}
@@ -157,8 +157,8 @@ MALWAYS_INLINE int isec_tri_quad(float start[3], const struct IsectRayPrecalc *i
 		if (isect_ray_tri_watertight_v3(start, isect_precalc, face->v1, face->v3, face->v4, &l, uv)) {
 			/* check if intersection is within ray length */
 			if (l > -RE_RAYTRACE_EPSILON && l < *lambda) {
-				r_uv[0] = uv[0];
-				r_uv[1] = uv[1];
+				r_uv[0] = -uv[0];
+				r_uv[1] = -uv[1];
 				*lambda = l;
 				return 2;
 			}




More information about the Bf-blender-cvs mailing list