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