diff --git a/source/blender/editors/object/object_bake_api.cc b/source/blender/editors/object/object_bake_api.cc index 2a56e82333c..108544de6ec 100644 --- a/source/blender/editors/object/object_bake_api.cc +++ b/source/blender/editors/object/object_bake_api.cc @@ -1518,6 +1518,13 @@ static int bake(const BakeAPIRender *bkr, pixel_array_low = static_cast( MEM_mallocN(sizeof(BakePixel) * targets.pixels_num, "bake pixels low poly")); if ((bkr->is_selected_to_active && (ob_cage == nullptr) && bkr->is_cage) == false) { + if (!CustomData_has_layer(&me_low_eval->corner_data, CD_PROP_FLOAT2)) { + BKE_reportf(reports, + RPT_ERROR, + "No UV map found in the evaluated object \"%s\"", + ob_low->id.name + 2); + goto cleanup; + } bake_targets_populate_pixels(bkr, &targets, ob_low, me_low_eval, pixel_array_low); } @@ -1570,6 +1577,13 @@ static int bake(const BakeAPIRender *bkr, } me_cage_eval = BKE_mesh_new_from_object(nullptr, ob_low_eval, false, preserve_origindex); + if (!CustomData_has_layer(&me_cage_eval->corner_data, CD_PROP_FLOAT2)) { + BKE_reportf(reports, + RPT_ERROR, + "No UV map found in the evaluated object \"%s\"", + ob_low->id.name + 2); + goto cleanup; + } bake_targets_populate_pixels(bkr, &targets, ob_low, me_cage_eval, pixel_array_low); } @@ -1752,6 +1766,14 @@ static int bake(const BakeAPIRender *bkr, /* Evaluate modifiers again. */ me_nores = BKE_mesh_new_from_object(nullptr, ob_low_eval, false, false); + if (!CustomData_has_layer(&me_nores->corner_data, CD_PROP_FLOAT2)) { + BKE_reportf(reports, + RPT_ERROR, + "No UV map found in the evaluated object \"%s\"", + ob_low->id.name + 2); + BKE_id_free(nullptr, &me_nores->id); + goto cleanup; + } bake_targets_populate_pixels(bkr, &targets, ob_low, me_nores, pixel_array_low); }