[Bf-blender-cvs] [4bf16bd] bake-cycles: Cycles-Bake: external saving is working again (though there is no UI)
Dalai Felinto
noreply at git.blender.org
Sun Apr 27 23:15:36 CEST 2014
Commit: 4bf16bdf8a7792386d44106443f8a0b74b41d99e
Author: Dalai Felinto
Date: Sun Apr 27 18:11:52 2014 -0300
https://developer.blender.org/rB4bf16bdf8a7792386d44106443f8a0b74b41d99e
Cycles-Bake: external saving is working again (though there is no UI)
Right now you can set it via the operator or via the scene properties:
bpy.ops.object.bake(filepath="/tmp/baked.png", save_mode='EXTERNAL', use_split_materials=True, ...)
bpy.context.scene.render.bake.filepath = "/tmp/baked.png"
bpy.context.scene.render.bake.save_mode = 'EXTERNAL'
bpy.context.scene.render.bake.use_split_materials = True # or False
===================================================================
M source/blender/editors/object/object_bake_api.c
===================================================================
diff --git a/source/blender/editors/object/object_bake_api.c b/source/blender/editors/object/object_bake_api.c
index ded001d..e485c21 100644
--- a/source/blender/editors/object/object_bake_api.c
+++ b/source/blender/editors/object/object_bake_api.c
@@ -393,10 +393,8 @@ static int bake_exec(bContext *C, wmOperator *op)
goto cleanup;
}
else {
-#if 0
/* baking externally without splitting materials */
- tot_images = 1;
-#endif
+ tot_materials = 1;
}
}
@@ -419,19 +417,28 @@ static int bake_exec(bContext *C, wmOperator *op)
}
}
else {
-#if 0
- num_pixels = 0;
- for (i = 0; i < tot_images; i++) {
- images.data[i].width = RNA_int_get(op->ptr, "width");
- images.data[i].height = RNA_int_get(op->ptr, "height");
- images.data[i].offset = (is_split_materials ? num_pixels : 0);
- images.data[i].image = NULL;
-
- num_pixels += images.data[i].width * images.data[i].height;
+ int width, height;
+
+ /* when saving extenally always use the size specified in the UI */
+ width = RNA_int_get(op->ptr, "width");
+ height = RNA_int_get(op->ptr, "height");
+
+ num_pixels = width * height * bake_images.size;
+
+ for (i = 0; i < bake_images.size; i++) {
+ bake_images.data[i].width = width;
+ bake_images.data[i].height = height;
+ bake_images.data[i].offset = (is_split_materials ? num_pixels : 0);
+ bake_images.data[i].image = NULL;
+
+ num_pixels += width * bake_images.data[i].height;
}
- BLI_assert(num_pixels == tot_images * images.data[0].width * images.data[0].height);
-#endif
+ if (!is_split_materials) {
+ /* saving a single image */
+ for (i = 0; i < tot_materials; i++)
+ bake_images.lookup[i] = 0;
+ }
}
if (use_selected_to_active) {
More information about the Bf-blender-cvs
mailing list