[Bf-blender-cvs] [a9a961a] bake-cycles: Cycles-Bake: fix for multiple-objects scene

Dalai Felinto noreply at git.blender.org
Wed Apr 23 02:47:07 CEST 2014


Commit: a9a961af2bfa8e68b484d01d7fdfa48ff89d53cf
Author: Dalai Felinto
Date:   Fri Feb 7 11:41:49 2014 -0200
https://developer.blender.org/rBa9a961af2bfa8e68b484d01d7fdfa48ff89d53cf

Cycles-Bake: fix for multiple-objects scene

I was creating the object index when the scene didnt have the info of all the objects yet

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

M	intern/cycles/blender/blender_session.cpp

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

diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 3f7eab4..c1a04f2 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -515,19 +515,9 @@ static bool is_light_pass(ShaderEvalType type)
 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);
-
-	/* find object index. todo: is arbitrary - copied from mesh_displace.cpp */
 	size_t object_index = ~0;
 	int tri_offset = 0;
 
-	for(size_t i = 0; i < scene->objects.size(); i++) {
-		if(strcmp(scene->objects[i]->name.c_str(), b_object.name().c_str()) == 0) {
-			object_index = i;
-			tri_offset = scene->objects[i]->mesh->tri_offset;
-			break;
-		}
-	}
-
 	if (shader_type == SHADER_EVAL_UV) {
 		/* force UV to be available */
 		Pass::add(PASS_UV, scene->film->passes);
@@ -555,6 +545,15 @@ void BlenderSession::bake(BL::Object b_object, const string& pass_type, BL::Bake
 	session->reset(buffer_params, session_params.samples);
 	session->update_scene();
 
+	/* find object index. todo: is arbitrary - copied from mesh_displace.cpp */
+	for (size_t i = 0; i < scene->objects.size(); i++) {
+		if (strcmp(scene->objects[i]->name.c_str(), b_object.name().c_str()) == 0) {
+			object_index = i;
+			tri_offset = scene->objects[i]->mesh->tri_offset;
+			break;
+		}
+	}
+
 	/* when used, non-instanced convention: object = ~object */
 	int object = ~object_index;




More information about the Bf-blender-cvs mailing list