[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52443] trunk/blender/intern/cycles/kernel /kernel_path.h: Fix #33257: cycles camera clipping did not work through transparent objects.

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Nov 21 14:22:27 CET 2012


Revision: 52443
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52443
Author:   blendix
Date:     2012-11-21 13:22:24 +0000 (Wed, 21 Nov 2012)
Log Message:
-----------
Fix #33257: cycles camera clipping did not work through transparent objects.

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

Modified: trunk/blender/intern/cycles/kernel/kernel_path.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_path.h	2012-11-21 13:13:50 UTC (rev 52442)
+++ trunk/blender/intern/cycles/kernel/kernel_path.h	2012-11-21 13:22:24 UTC (rev 52443)
@@ -424,7 +424,12 @@
 		/* setup ray */
 		ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng);
 		ray.D = bsdf_omega_in;
-		ray.t = FLT_MAX;
+
+		if(state.bounce == 0)
+			ray.t -= sd.ray_length; /* clipping works through transparent */
+		else
+			ray.t = FLT_MAX;
+
 #ifdef __RAY_DIFFERENTIALS__
 		ray.dP = sd.dP;
 		ray.dD = bsdf_domega_in;
@@ -887,6 +892,7 @@
 
 		path_state_next(kg, &state, LABEL_TRANSPARENT);
 		ray.P = ray_offset(sd.P, -sd.Ng);
+		ray.t -= sd.ray_length; /* clipping works through transparent */
 	}
 
 	float3 L_sum = path_radiance_sum(kg, &L);




More information about the Bf-blender-cvs mailing list