[Bf-blender-cvs] [abd38c0] master: Cycles: set hit values in-order

Campbell Barton noreply at git.blender.org
Sat Oct 11 11:24:21 CEST 2014


Commit: abd38c00f1ed0305cf4d0735f567851862e34e08
Author: Campbell Barton
Date:   Sat Oct 11 11:16:31 2014 +0200
Branches: master
https://developer.blender.org/rBabd38c00f1ed0305cf4d0735f567851862e34e08

Cycles: set hit values in-order

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

M	intern/cycles/kernel/geom/geom_bvh_traversal.h
M	intern/cycles/kernel/geom/geom_bvh_volume.h
M	intern/cycles/kernel/geom/geom_curve.h
M	intern/cycles/kernel/geom/geom_motion_triangle.h
M	intern/cycles/kernel/geom/geom_triangle.h

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

diff --git a/intern/cycles/kernel/geom/geom_bvh_traversal.h b/intern/cycles/kernel/geom/geom_bvh_traversal.h
index eed54a4..114d30a 100644
--- a/intern/cycles/kernel/geom/geom_bvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_bvh_traversal.h
@@ -63,10 +63,10 @@ ccl_device bool BVH_FUNCTION_NAME
 #endif
 
 	isect->t = ray->t;
-	isect->object = OBJECT_NONE;
-	isect->prim = PRIM_NONE;
 	isect->u = 0.0f;
 	isect->v = 0.0f;
+	isect->prim = PRIM_NONE;
+	isect->object = OBJECT_NONE;
 
 #if defined(__KERNEL_DEBUG__)
 	isect->num_traversal_steps = 0;
diff --git a/intern/cycles/kernel/geom/geom_bvh_volume.h b/intern/cycles/kernel/geom/geom_bvh_volume.h
index aac0a18..9dd8d22 100644
--- a/intern/cycles/kernel/geom/geom_bvh_volume.h
+++ b/intern/cycles/kernel/geom/geom_bvh_volume.h
@@ -61,10 +61,10 @@ ccl_device bool BVH_FUNCTION_NAME(KernelGlobals *kg,
 #endif
 
 	isect->t = ray->t;
-	isect->object = OBJECT_NONE;
-	isect->prim = PRIM_NONE;
 	isect->u = 0.0f;
 	isect->v = 0.0f;
+	isect->prim = PRIM_NONE;
+	isect->object = OBJECT_NONE;
 
 #if defined(__KERNEL_SSE2__)
 	const shuffle_swap_t shuf_identity = shuffle_swap_identity();
diff --git a/intern/cycles/kernel/geom/geom_curve.h b/intern/cycles/kernel/geom/geom_curve.h
index c4e9e2a..b6d21c9 100644
--- a/intern/cycles/kernel/geom/geom_curve.h
+++ b/intern/cycles/kernel/geom/geom_curve.h
@@ -600,12 +600,12 @@ ccl_device_inline bool bvh_cardinal_curve_intersect(KernelGlobals *kg, Intersect
 #endif
 			{
 				/* record intersection */
+				isect->t = t;
+				isect->u = u;
+				isect->v = gd;
 				isect->prim = curveAddr;
 				isect->object = object;
 				isect->type = type;
-				isect->u = u;
-				isect->v = gd;
-				isect->t = t;
 				hit = true;
 			}
 			
@@ -835,12 +835,12 @@ ccl_device_inline bool bvh_curve_intersect(KernelGlobals *kg, Intersection *isec
 #endif
 			{
 				/* record intersection */
+				isect->t = t;
+				isect->u = z*invl;
+				isect->v = gd;
 				isect->prim = curveAddr;
 				isect->object = object;
 				isect->type = type;
-				isect->u = z*invl;
-				isect->v = gd;
-				isect->t = t;
 
 				return true;
 			}
diff --git a/intern/cycles/kernel/geom/geom_motion_triangle.h b/intern/cycles/kernel/geom/geom_motion_triangle.h
index b275b89..3a4b20e 100644
--- a/intern/cycles/kernel/geom/geom_motion_triangle.h
+++ b/intern/cycles/kernel/geom/geom_motion_triangle.h
@@ -336,12 +336,12 @@ ccl_device_inline bool motion_triangle_intersect(KernelGlobals *kg, Intersection
 		if(kernel_tex_fetch(__prim_visibility, triAddr) & visibility)
 #endif
 		{
+			isect->t = t;
+			isect->u = u;
+			isect->v = v;
 			isect->prim = triAddr;
 			isect->object = object;
 			isect->type = PRIMITIVE_MOTION_TRIANGLE;
-			isect->u = u;
-			isect->v = v;
-			isect->t = t;
 		
 			return true;
 		}
@@ -388,12 +388,12 @@ ccl_device_inline void motion_triangle_intersect_subsurface(KernelGlobals *kg, I
 
 		/* record intersection */
 		Intersection *isect = &isect_array[hit];
+		isect->t = t;
+		isect->u = u;
+		isect->v = v;
 		isect->prim = triAddr;
 		isect->object = object;
 		isect->type = PRIMITIVE_MOTION_TRIANGLE;
-		isect->u = u;
-		isect->v = v;
-		isect->t = t;
 	}
 }
 #endif
diff --git a/intern/cycles/kernel/geom/geom_triangle.h b/intern/cycles/kernel/geom/geom_triangle.h
index 1b4c79c..c08a82e 100644
--- a/intern/cycles/kernel/geom/geom_triangle.h
+++ b/intern/cycles/kernel/geom/geom_triangle.h
@@ -334,12 +334,12 @@ ccl_device_inline bool triangle_intersect(KernelGlobals *kg, Intersection *isect
 #endif
 				{
 					/* record intersection */
+					isect->t = t;
+					isect->u = u;
+					isect->v = v;
 					isect->prim = triAddr;
 					isect->object = object;
 					isect->type = PRIMITIVE_TRIANGLE;
-					isect->u = u;
-					isect->v = v;
-					isect->t = t;
 					return true;
 				}
 			}
@@ -397,12 +397,12 @@ ccl_device_inline void triangle_intersect_subsurface(KernelGlobals *kg, Intersec
 
 				/* record intersection */
 				Intersection *isect = &isect_array[hit];
+				isect->t = t;
+				isect->u = u;
+				isect->v = v;
 				isect->prim = triAddr;
 				isect->object = object;
 				isect->type = PRIMITIVE_TRIANGLE;
-				isect->u = u;
-				isect->v = v;
-				isect->t = t;
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list