[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57137] trunk/blender/intern/cycles/kernel : Cycles:

Thomas Dinges blender at dingto.org
Thu May 30 13:05:02 CEST 2013


Revision: 57137
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57137
Author:   dingto
Date:     2013-05-30 11:05:02 +0000 (Thu, 30 May 2013)
Log Message:
-----------
Cycles:
* Move some hair width related code into a dedicated branch.
* Don't calculate time/lens RNG when Motion Blur or Depth of Field are disabled

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/kernel_bvh.h
    trunk/blender/intern/cycles/kernel/kernel_path.h

Modified: trunk/blender/intern/cycles/kernel/kernel_bvh.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_bvh.h	2013-05-30 09:59:12 UTC (rev 57136)
+++ trunk/blender/intern/cycles/kernel/kernel_bvh.h	2013-05-30 11:05:02 UTC (rev 57137)
@@ -119,8 +119,6 @@
 	bool *closestChild1, int *nodeAddr0, int *nodeAddr1,
 	float3 P, float3 idir, float t, uint visibility, int nodeAddr, float difl, float extmax)
 {
-	float hdiff = 1.0f + difl;
-	float ldiff = 1.0f - difl;
 #else
 __device_inline void bvh_node_intersect(KernelGlobals *kg,
 	bool *traverseChild0, bool *traverseChild1,
@@ -157,6 +155,8 @@
 
 #ifdef __HAIR__
 	if(difl != 0.0f) {
+		float hdiff = 1.0f + difl;
+		float ldiff = 1.0f - difl;
 		if(__float_as_int(cnodes.z) & PATH_RAY_CURVE) {
 			c0min = max(ldiff * c0min, c0min - extmax);
 			c0max = min(hdiff * c0max, c0max + extmax);

Modified: trunk/blender/intern/cycles/kernel/kernel_path.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_path.h	2013-05-30 09:59:12 UTC (rev 57136)
+++ trunk/blender/intern/cycles/kernel/kernel_path.h	2013-05-30 11:05:02 UTC (rev 57137)
@@ -1115,14 +1115,17 @@
 
 	/* sample camera ray */
 	Ray ray;
-
-	float lens_u = path_rng(kg, &rng, sample, PRNG_LENS_U);
-	float lens_v = path_rng(kg, &rng, sample, PRNG_LENS_V);
-
+	
+	float lens_u = 0.0f, lens_v = 0.0f;
+	float time = 0.0f;
+	
+	if(kernel_data.cam.aperturesize > 0.0f) {
+		lens_u = path_rng(kg, &rng, sample, PRNG_LENS_U);
+		lens_v = path_rng(kg, &rng, sample, PRNG_LENS_V);
+	}
 #ifdef __CAMERA_MOTION__
-	float time = path_rng(kg, &rng, sample, PRNG_TIME);
-#else
-	float time = 0.0f;
+	if(kernel_data.cam.shuttertime != -1.0f)
+		time = path_rng(kg, &rng, sample, PRNG_TIME);
 #endif
 
 	camera_sample(kg, x, y, filter_u, filter_v, lens_u, lens_v, time, &ray);




More information about the Bf-blender-cvs mailing list