forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			126 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			126 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import bpy
							 | 
						||
| 
								 | 
							
								from bpy.props import *
							 | 
						||
| 
								 | 
							
								from bpy.types import Menu, Panel
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TLM_PT_ObjectMenu(bpy.types.Panel):
							 | 
						||
| 
								 | 
							
								    bl_label = "The Lightmapper"
							 | 
						||
| 
								 | 
							
								    bl_space_type = "PROPERTIES"
							 | 
						||
| 
								 | 
							
								    bl_region_type = "WINDOW"
							 | 
						||
| 
								 | 
							
								    bl_context = "object"
							 | 
						||
| 
								 | 
							
								    bl_options = {'DEFAULT_CLOSED'}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def draw(self, context):
							 | 
						||
| 
								 | 
							
								        layout = self.layout
							 | 
						||
| 
								 | 
							
								        scene = context.scene
							 | 
						||
| 
								 | 
							
								        obj = bpy.context.object
							 | 
						||
| 
								 | 
							
								        layout.use_property_split = True
							 | 
						||
| 
								 | 
							
								        layout.use_property_decorate = False
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if obj.type == "MESH":
							 | 
						||
| 
								 | 
							
								            row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								            row.prop(obj.TLM_ObjectProperties, "tlm_mesh_lightmap_use")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if obj.TLM_ObjectProperties.tlm_mesh_lightmap_use:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                row = layout.row()
							 | 
						||
| 
								 | 
							
								                row.prop(obj.TLM_ObjectProperties, "tlm_use_default_channel")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if not obj.TLM_ObjectProperties.tlm_use_default_channel:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    row = layout.row()
							 | 
						||
| 
								 | 
							
								                    row.prop_search(obj.TLM_ObjectProperties, "tlm_uv_channel", obj.data, "uv_layers", text='UV Channel')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                row = layout.row()
							 | 
						||
| 
								 | 
							
								                row.prop(obj.TLM_ObjectProperties, "tlm_mesh_lightmap_resolution")
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_use_default_channel:
							 | 
						||
| 
								 | 
							
								                    row = layout.row()
							 | 
						||
| 
								 | 
							
								                    row.prop(obj.TLM_ObjectProperties, "tlm_mesh_lightmap_unwrap_mode")
							 | 
						||
| 
								 | 
							
								                row = layout.row()
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_mesh_lightmap_unwrap_mode == "AtlasGroupA":
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    if scene.TLM_AtlasListItem >= 0 and len(scene.TLM_AtlasList) > 0:
							 | 
						||
| 
								 | 
							
								                        row = layout.row()
							 | 
						||
| 
								 | 
							
								                        item = scene.TLM_AtlasList[scene.TLM_AtlasListItem]
							 | 
						||
| 
								 | 
							
								                        row.prop_search(obj.TLM_ObjectProperties, "tlm_atlas_pointer", scene, "TLM_AtlasList", text='Atlas Group')
							 | 
						||
| 
								 | 
							
								                        row = layout.row()
							 | 
						||
| 
								 | 
							
								                    else:
							 | 
						||
| 
								 | 
							
								                        row = layout.label(text="Add Atlas Groups from the scene lightmapping settings.")
							 | 
						||
| 
								 | 
							
								                        row = layout.row()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                else:
							 | 
						||
| 
								 | 
							
								                    row = layout.row()
							 | 
						||
| 
								 | 
							
								                    row.prop(obj.TLM_ObjectProperties, "tlm_postpack_object")
							 | 
						||
| 
								 | 
							
								                    row = layout.row()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_postpack_object and obj.TLM_ObjectProperties.tlm_mesh_lightmap_unwrap_mode != "AtlasGroupA":
							 | 
						||
| 
								 | 
							
								                    if scene.TLM_PostAtlasListItem >= 0 and len(scene.TLM_PostAtlasList) > 0:
							 | 
						||
| 
								 | 
							
								                        row = layout.row()
							 | 
						||
| 
								 | 
							
								                        item = scene.TLM_PostAtlasList[scene.TLM_PostAtlasListItem]
							 | 
						||
| 
								 | 
							
								                        row.prop_search(obj.TLM_ObjectProperties, "tlm_postatlas_pointer", scene, "TLM_PostAtlasList", text='Atlas Group')
							 | 
						||
| 
								 | 
							
								                        row = layout.row()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    else:
							 | 
						||
| 
								 | 
							
								                        row = layout.label(text="Add Atlas Groups from the scene lightmapping settings.")
							 | 
						||
| 
								 | 
							
								                        row = layout.row()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                row.prop(obj.TLM_ObjectProperties, "tlm_mesh_unwrap_margin")
							 | 
						||
| 
								 | 
							
								                row = layout.row()
							 | 
						||
| 
								 | 
							
								                row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filter_override")
							 | 
						||
| 
								 | 
							
								                row = layout.row()
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_mesh_filter_override:
							 | 
						||
| 
								 | 
							
								                    row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                    row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_mode")
							 | 
						||
| 
								 | 
							
								                    row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                    if obj.TLM_ObjectProperties.tlm_mesh_filtering_mode == "Gaussian":
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_gaussian_strength")
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_iterations")
							 | 
						||
| 
								 | 
							
								                    elif obj.TLM_ObjectProperties.tlm_mesh_filtering_mode == "Box":
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_box_strength")
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_iterations")
							 | 
						||
| 
								 | 
							
								                    elif obj.TLM_ObjectProperties.tlm_mesh_filtering_mode == "Bilateral":
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_bilateral_diameter")
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_bilateral_color_deviation")
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_bilateral_coordinate_deviation")
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_iterations")
							 | 
						||
| 
								 | 
							
								                    else:
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_median_kernel", expand=True)
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_mesh_filtering_iterations")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                #If UV Packer installed
							 | 
						||
| 
								 | 
							
								                if "UV-Packer" in bpy.context.preferences.addons.keys():
							 | 
						||
| 
								 | 
							
								                    row.prop(obj.TLM_ObjectProperties, "tlm_use_uv_packer")
							 | 
						||
| 
								 | 
							
								                    if obj.TLM_ObjectProperties.tlm_use_uv_packer:
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_uv_packer_padding")
							 | 
						||
| 
								 | 
							
								                        row = layout.row(align=True)
							 | 
						||
| 
								 | 
							
								                        row.prop(obj.TLM_ObjectProperties, "tlm_uv_packer_packing_engine")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TLM_PT_MaterialMenu(bpy.types.Panel):
							 | 
						||
| 
								 | 
							
								    bl_label = "The Lightmapper"
							 | 
						||
| 
								 | 
							
								    bl_space_type = "PROPERTIES"
							 | 
						||
| 
								 | 
							
								    bl_region_type = "WINDOW"
							 | 
						||
| 
								 | 
							
								    bl_context = "material"
							 | 
						||
| 
								 | 
							
								    bl_options = {'DEFAULT_CLOSED'}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def draw(self, context):
							 | 
						||
| 
								 | 
							
								        layout = self.layout
							 | 
						||
| 
								 | 
							
								        scene = context.scene
							 | 
						||
| 
								 | 
							
								        obj = bpy.context.object
							 | 
						||
| 
								 | 
							
								        layout.use_property_split = True
							 | 
						||
| 
								 | 
							
								        layout.use_property_decorate = False
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        mat = bpy.context.material
							 | 
						||
| 
								 | 
							
								        if mat == None:
							 | 
						||
| 
								 | 
							
								            return
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if obj.type == "MESH":
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            row = layout.row()
							 | 
						||
| 
								 | 
							
								            row.prop(mat, "TLM_ignore")
							 |