Files
2026-03-17 14:58:51 -06:00

69 lines
2.3 KiB
Python

import bpy
from ..Bake import bake_manager
from .. Functions import gui_functions
class GTT_BakeOperator(bpy.types.Operator):
"""Bake all attached Textures"""
bl_idname = "object.gtt_bake_operator"
bl_label = "Simple Object Operator"
@classmethod
def poll(cls, context):
if len(context.selected_objects) < 1:
return False
else:
return True
def deselect_everything_but_mesh(self,selected_objects):
for obj in selected_objects:
if obj.type != 'MESH':
obj.select_set(False)
def execute(self,context):
# ----------------------- VAR --------------------#
selected_objects = context.selected_objects
bake_settings = context.scene.bake_settings
texture_settings = context.scene.texture_settings
self.deselect_everything_but_mesh(selected_objects)
# ----------------------- CHECK SELECTION --------------------#
for obj in selected_objects:
if obj.type != 'MESH':
obj.select_set(False)
if len(obj.material_slots) == 0:
self.report({'INFO'}, 'No Material on ' + obj.name)
context.view_layer.objects.active = context.selected_objects[0]
# ----------------------- SET VISIBLITY TO MATERIAL --------------------#
texture_settings.preview_bake_texture = False
# ----------------------- LIGHTMAP / AO --------------------#
if bake_settings.lightmap_bake or bake_settings.ao_bake:
bake_manager.bake_texture(self,selected_objects,bake_settings)
if bake_settings.show_texture_after_bake and bake_settings.denoise:
texture_settings.preview_bake_texture = True
for obj in selected_objects:
if bake_settings.ao_bake:
obj.ao_map_name = bake_settings.bake_image_name
if bake_settings.lightmap_bake:
obj.lightmap_name = bake_settings.bake_image_name
gui_functions.update_active_element_in_bake_list()
# ----------------------- PBR Texture --------------------#
if bake_settings.pbr_bake:
bake_manager.bake_on_plane(self,selected_objects,bake_settings)
return {'FINISHED'}