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") |