[Bf-blender-cvs] [8118973] bake-cycles: Cycles-Bake: make sure film use_light_visibility is on since blender_session (just to be safe)

Dalai Felinto noreply at git.blender.org
Wed Apr 23 02:46:55 CEST 2014


Commit: 8118973206e7bf8f84042f2ecca48c2f4fd984e9
Author: Dalai Felinto
Date:   Thu Jan 23 15:33:21 2014 -0200
https://developer.blender.org/rB8118973206e7bf8f84042f2ecca48c2f4fd984e9

Cycles-Bake: make sure film use_light_visibility is on since blender_session (just to be safe)

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

M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/kernel/kernel_displace.h

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

diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index a241a35..814fb97 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -560,6 +560,25 @@ static void populate_bake_data(BakeData *data, BL::BakePixel pixel_array, const
 	}
 }
 
+static bool is_light_pass(ShaderEvalType type)
+{
+	switch (type) {
+		case SHADER_EVAL_COMBINED:
+		case SHADER_EVAL_SHADOW:
+		case SHADER_EVAL_DIFFUSE_DIRECT:
+		case SHADER_EVAL_GLOSSY_DIRECT:
+		case SHADER_EVAL_TRANSMISSION_DIRECT:
+		case SHADER_EVAL_SUBSURFACE_DIRECT:
+		case SHADER_EVAL_DIFFUSE_INDIRECT:
+		case SHADER_EVAL_GLOSSY_INDIRECT:
+		case SHADER_EVAL_TRANSMISSION_INDIRECT:
+		case SHADER_EVAL_SUBSURFACE_INDIRECT:
+			return true;
+		default:
+			return false;
+	}
+}
+
 void BlenderSession::bake(BL::Object b_object, const string& pass_type, BL::BakePixel pixel_array, int num_pixels, int depth, float result[])
 {
 	ShaderEvalType shader_type = get_shader_type(pass_type);
@@ -581,6 +600,8 @@ void BlenderSession::bake(BL::Object b_object, const string& pass_type, BL::Bake
 		Pass::add(PASS_UV, scene->film->passes);
 	}
 
+	scene->film->use_light_visibility = is_light_pass(shader_type);
+
 	/* create device and update scene */
 	scene->film->tag_update(scene);
 	scene->integrator->tag_update(scene);
diff --git a/intern/cycles/kernel/kernel_displace.h b/intern/cycles/kernel/kernel_displace.h
index ef8c691..8783bd3 100644
--- a/intern/cycles/kernel/kernel_displace.h
+++ b/intern/cycles/kernel/kernel_displace.h
@@ -28,6 +28,7 @@ ccl_device void compute_light_pass(KernelGlobals *kg, ShaderData *sd, PathRadian
 	/* initialize */
 	float3 throughput = make_float3(1.0f, 1.0f, 1.0f);
 
+	assert(kernel_data.film.use_light_pass);
 	path_radiance_init(L, true);
 
 	/* TODO: copy bounce and other settings from scene */




More information about the Bf-blender-cvs mailing list