[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57230] trunk/blender/intern/cycles/kernel /kernel_path.h: Fix #35614: cycles objects on mask layer in render layers were writing passes
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue Jun 4 17:41:45 CEST 2013
Revision: 57230
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57230
Author: blendix
Date: 2013-06-04 15:41:45 +0000 (Tue, 04 Jun 2013)
Log Message:
-----------
Fix #35614: cycles objects on mask layer in render layers were writing passes
such as motion/uv/normal but they should have been excluded from them.
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 2013-06-04 15:36:00 UTC (rev 57229)
+++ trunk/blender/intern/cycles/kernel/kernel_path.h 2013-06-04 15:41:45 UTC (rev 57230)
@@ -326,19 +326,6 @@
float rbsdf = path_rng(kg, rng, sample, rng_offset + PRNG_BSDF);
shader_eval_surface(kg, &sd, rbsdf, state.flag, SHADER_CONTEXT_MAIN);
- kernel_write_data_passes(kg, buffer, &L, &sd, sample, state.flag, throughput);
-
- /* blurring of bsdf after bounces, for rays that have a small likelihood
- * of following this particular path (diffuse, rough glossy) */
- if(kernel_data.integrator.filter_glossy != FLT_MAX) {
- float blur_pdf = kernel_data.integrator.filter_glossy*min_ray_pdf;
-
- if(blur_pdf < 1.0f) {
- float blur_roughness = sqrtf(1.0f - blur_pdf)*0.5f;
- shader_bsdf_blur(kg, &sd, blur_roughness);
- }
- }
-
/* holdout */
#ifdef __HOLDOUT__
if((sd.flag & (SD_HOLDOUT|SD_HOLDOUT_MASK)) && (state.flag & PATH_RAY_CAMERA)) {
@@ -359,6 +346,20 @@
}
#endif
+ /* holdout mask objects do not write data passes */
+ kernel_write_data_passes(kg, buffer, &L, &sd, sample, state.flag, throughput);
+
+ /* blurring of bsdf after bounces, for rays that have a small likelihood
+ * of following this particular path (diffuse, rough glossy) */
+ if(kernel_data.integrator.filter_glossy != FLT_MAX) {
+ float blur_pdf = kernel_data.integrator.filter_glossy*min_ray_pdf;
+
+ if(blur_pdf < 1.0f) {
+ float blur_roughness = sqrtf(1.0f - blur_pdf)*0.5f;
+ shader_bsdf_blur(kg, &sd, blur_roughness);
+ }
+ }
+
#ifdef __EMISSION__
/* emission */
if(sd.flag & SD_EMISSION) {
@@ -993,8 +994,6 @@
shader_eval_surface(kg, &sd, rbsdf, state.flag, SHADER_CONTEXT_MAIN);
shader_merge_closures(kg, &sd);
- kernel_write_data_passes(kg, buffer, &L, &sd, sample, state.flag, throughput);
-
/* holdout */
#ifdef __HOLDOUT__
if((sd.flag & (SD_HOLDOUT|SD_HOLDOUT_MASK))) {
@@ -1015,6 +1014,9 @@
}
#endif
+ /* holdout mask objects do not write data passes */
+ kernel_write_data_passes(kg, buffer, &L, &sd, sample, state.flag, throughput);
+
#ifdef __EMISSION__
/* emission */
if(sd.flag & SD_EMISSION) {
More information about the Bf-blender-cvs
mailing list