[Bf-blender-cvs] [814fa06] master: Cycles: Optimize spherical stereo position when no spherical stereo is used

Sergey Sharybin noreply at git.blender.org
Thu Mar 10 18:05:42 CET 2016


Commit: 814fa068514a6e9f3e84553310f1d0b0b7918435
Author: Sergey Sharybin
Date:   Thu Mar 10 22:03:03 2016 +0500
Branches: master
https://developer.blender.org/rB814fa068514a6e9f3e84553310f1d0b0b7918435

Cycles: Optimize spherical stereo position when no spherical stereo is used

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

M	intern/cycles/kernel/kernel_projection.h

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

diff --git a/intern/cycles/kernel/kernel_projection.h b/intern/cycles/kernel/kernel_projection.h
index fa06b93..aedcbdd 100644
--- a/intern/cycles/kernel/kernel_projection.h
+++ b/intern/cycles/kernel/kernel_projection.h
@@ -222,33 +222,41 @@ ccl_device float2 direction_to_panorama(KernelGlobals *kg, float3 dir)
 	}
 }
 
-ccl_device float3 spherical_stereo_position(KernelGlobals *kg, float3 dir, float3 pos)
+ccl_device float3 spherical_stereo_position(KernelGlobals *kg,
+                                            float3 dir,
+                                            float3 pos)
 {
-	float3 up, side;
+	const float interocular_offset = kernel_data.cam.interocular_offset;
 
-	/* Interocular_offset of zero means either non stereo, or stereo without spherical stereo. */
+	/* Interocular offset of zero means either non stereo, or stereo without
+	 * spherical stereo.
+	 */
+	if(interocular_offset == 0.0f) {
+		return pos;
+	}
 
-	up = make_float3(0.0f, 0.0f, 1.0f);
-	side = normalize(cross(dir, up));
+	float3 up = make_float3(0.0f, 0.0f, 1.0f);
+	float3 side = normalize(cross(dir, up));
 
-	return pos + (side * kernel_data.cam.interocular_offset);
+	return pos + (side * interocular_offset);
 }
 
-ccl_device float3 spherical_stereo_direction(KernelGlobals *kg, float3 dir, float3 pos, float3 newpos)
+ccl_device float3 spherical_stereo_direction(KernelGlobals *kg,
+                                             float3 dir,
+                                             float3 pos,
+                                             float3 newpos)
 {
-	float3 screenpos, dirnew;
-
-	/* Interocular_distance of zero means either no stereo, or stereo without spherical stereo. */
-	if(kernel_data.cam.interocular_offset == 0.0f)
+	/* Interocular offset of zero means either no stereo, or stereo without
+	 * spherical stereo.
+	 */
+	if(kernel_data.cam.interocular_offset == 0.0f) {
 		return dir;
+	}
 
-	screenpos = pos + (normalize(dir) * kernel_data.cam.convergence_distance);
-	dirnew = screenpos - newpos;
-
-	return dirnew;
+	float3 screenpos = pos + (normalize(dir) * kernel_data.cam.convergence_distance);
+	return screenpos - newpos;
 }
 
 CCL_NAMESPACE_END
 
-#endif /* __KERNEL_PROJECTION_CL__ */
-
+#endif  /* __KERNEL_PROJECTION_CL__ */




More information about the Bf-blender-cvs mailing list