From 09d28466973b8e6c364e46c145f2f5175012e170 Mon Sep 17 00:00:00 2001 From: franMarz <58062362+franMarz@users.noreply.github.com> Date: Mon, 15 Mar 2021 09:13:52 +0100 Subject: [PATCH] Several sets baking fix There were unnecessary loops affecting deletion of temporary baking nodes and objects, only noticeable when baking several sets of objects. Fixes #73 --- op_bake.py | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/op_bake.py b/op_bake.py index e5e0cd2..6e414e1 100644 --- a/op_bake.py +++ b/op_bake.py @@ -322,15 +322,14 @@ def bake(self, mode, size, bake_single, sampling_scale, samples, cage_extrusion, area.spaces[0].image = image # Delete provisional bake nodes used during baking - for temp_set in temp_sets: - if (len(temp_set.objects_high) + len(temp_set.objects_float)) > 0: - for obj in temp_set.objects_low: - if obj.material_slots[0].material == material_empty: - bpy.ops.object.material_slot_remove({'object': obj}) - clear_image_bake_node(obj) - else: - for obj in temp_set.objects_low: - clear_image_bake_node(obj) + if (len(set.objects_high) + len(set.objects_float)) > 0: + for obj in set.objects_low: + if obj.material_slots[0].material == material_empty: + bpy.ops.object.material_slot_remove({'object': obj}) + clear_image_bake_node(obj) + else: + for obj in set.objects_low: + clear_image_bake_node(obj) # Restore Tuned Materials if mode == 'metallic' or mode == 'base_color': @@ -353,16 +352,15 @@ def bake(self, mode, size, bake_single, sampling_scale, samples, cage_extrusion, # Delete temp objects created for baking if material_loaded: material_loaded.user_clear() - for temp_set in temp_sets: - to_delete = [] - if (len(temp_set.objects_high) + len(temp_set.objects_float)) == 0 : - for obj in temp_set.objects_low: - obj.data.materials.clear() - to_delete.append(obj) - else: - for obj in (temp_set.objects_high + temp_set.objects_float) : - obj.data.materials.clear() - to_delete.append(obj) + to_delete = [] + if (len(set.objects_high) + len(set.objects_float)) == 0 : + for obj in set.objects_low: + obj.data.materials.clear() + to_delete.append(obj) + else: + for obj in (set.objects_high + set.objects_float) : + obj.data.materials.clear() + to_delete.append(obj) bpy.ops.object.delete({'selected_objects': to_delete})