From 92fa42f2ce08f090d251ef9fadd0e0b7128e32a5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 31 Jan 2019 18:09:36 +0100 Subject: Fix T60973: crash baking objects disabled for rendering. --- intern/cycles/blender/blender_session.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'intern/cycles/blender/blender_session.cpp') diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 7373d091ab7..10170c9d0ba 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -692,10 +692,14 @@ void BlenderSession::bake(BL::Depsgraph& b_depsgraph_, } } - int object = object_index; + /* Object might have been disabled for rendering or excluded in some + * other way, in that case Blender will report a warning afterwards. */ + if (object_index != OBJECT_NONE) { + int object = object_index; - bake_data = scene->bake_manager->init(object, tri_offset, num_pixels); - populate_bake_data(bake_data, object_id, pixel_array, num_pixels); + bake_data = scene->bake_manager->init(object, tri_offset, num_pixels); + populate_bake_data(bake_data, object_id, pixel_array, num_pixels); + } /* set number of samples */ session->tile_manager.set_samples(session_params.samples); @@ -706,7 +710,7 @@ void BlenderSession::bake(BL::Depsgraph& b_depsgraph_, } /* Perform bake. Check cancel to avoid crash with incomplete scene data. */ - if(!session->progress.get_cancel()) { + if(!session->progress.get_cancel() && bake_data) { scene->bake_manager->bake(scene->device, &scene->dscene, scene, session->progress, shader_type, bake_pass_filter, bake_data, result); } -- cgit v1.2.3