182 lines
5.8 KiB
Python
182 lines
5.8 KiB
Python
|
import bpy
|
||
|
from bpy.props import *
|
||
|
|
||
|
class TLM_ObjectProperties(bpy.types.PropertyGroup):
|
||
|
|
||
|
addon_keys = bpy.context.preferences.addons.keys()
|
||
|
|
||
|
tlm_atlas_pointer : StringProperty(
|
||
|
name = "Atlas Group",
|
||
|
description = "",
|
||
|
default = "")
|
||
|
|
||
|
tlm_postatlas_pointer : StringProperty(
|
||
|
name = "Atlas Group",
|
||
|
description = "Atlas Lightmap Group",
|
||
|
default = "")
|
||
|
|
||
|
tlm_uvchannel_pointer : StringProperty(
|
||
|
name = "UV Channel",
|
||
|
description = "Select UV Channel to bake to",
|
||
|
default = "")
|
||
|
|
||
|
tlm_uvchannel_pointer : BoolProperty(
|
||
|
name="Enable Lightmapping",
|
||
|
description="TODO",
|
||
|
default=False)
|
||
|
|
||
|
tlm_mesh_lightmap_use : BoolProperty(
|
||
|
name="Enable Lightmapping",
|
||
|
description="TODO",
|
||
|
default=False)
|
||
|
|
||
|
tlm_material_ignore : BoolProperty(
|
||
|
name="Skip material",
|
||
|
description="Ignore material for lightmapped object",
|
||
|
default=False)
|
||
|
|
||
|
tlm_mesh_lightmap_resolution : EnumProperty(
|
||
|
items = [('32', '32', 'TODO'),
|
||
|
('64', '64', 'TODO'),
|
||
|
('128', '128', 'TODO'),
|
||
|
('256', '256', 'TODO'),
|
||
|
('512', '512', 'TODO'),
|
||
|
('1024', '1024', 'TODO'),
|
||
|
('2048', '2048', 'TODO'),
|
||
|
('4096', '4096', 'TODO'),
|
||
|
('8192', '8192', 'TODO')],
|
||
|
name = "Lightmap Resolution",
|
||
|
description="TODO",
|
||
|
default='256')
|
||
|
|
||
|
unwrap_modes = [('Lightmap', 'Lightmap', 'TODO'),
|
||
|
('SmartProject', 'Smart Project', 'TODO'),
|
||
|
('AtlasGroupA', 'Atlas Group (Prepack)', 'Attaches the object to a prepack Atlas group. Will overwrite UV map on build.'),
|
||
|
('Copy', 'Copy existing', 'Use the existing UV channel')]
|
||
|
|
||
|
tlm_postpack_object : BoolProperty( #CHECK INSTEAD OF ATLASGROUPB
|
||
|
name="Postpack object",
|
||
|
description="Postpack object into an AtlasGroup",
|
||
|
default=False)
|
||
|
|
||
|
if "blender_xatlas" in addon_keys:
|
||
|
unwrap_modes.append(('Xatlas', 'Xatlas', 'TODO'))
|
||
|
|
||
|
tlm_mesh_lightmap_unwrap_mode : EnumProperty(
|
||
|
items = unwrap_modes,
|
||
|
name = "Unwrap Mode",
|
||
|
description="TODO",
|
||
|
default='SmartProject')
|
||
|
|
||
|
tlm_mesh_unwrap_margin : FloatProperty(
|
||
|
name="Unwrap Margin",
|
||
|
default=0.1,
|
||
|
min=0.0,
|
||
|
max=1.0,
|
||
|
subtype='FACTOR')
|
||
|
|
||
|
tlm_mesh_filter_override : BoolProperty(
|
||
|
name="Override filtering",
|
||
|
description="Override the scene specific filtering",
|
||
|
default=False)
|
||
|
|
||
|
#FILTERING SETTINGS GROUP
|
||
|
tlm_mesh_filtering_engine : EnumProperty(
|
||
|
items = [('OpenCV', 'OpenCV', 'Make use of OpenCV based image filtering (Requires it to be installed first in the preferences panel)'),
|
||
|
('Numpy', 'Numpy', 'Make use of Numpy based image filtering (Integrated)')],
|
||
|
name = "Filtering library",
|
||
|
description="Select which filtering library to use.",
|
||
|
default='Numpy')
|
||
|
|
||
|
#Numpy Filtering options
|
||
|
tlm_mesh_numpy_filtering_mode : EnumProperty(
|
||
|
items = [('Blur', 'Blur', 'Basic blur filtering.')],
|
||
|
name = "Filter",
|
||
|
description="TODO",
|
||
|
default='Blur')
|
||
|
|
||
|
#OpenCV Filtering options
|
||
|
tlm_mesh_filtering_mode : EnumProperty(
|
||
|
items = [('Box', 'Box', 'Basic box blur'),
|
||
|
('Gaussian', 'Gaussian', 'Gaussian blurring'),
|
||
|
('Bilateral', 'Bilateral', 'Edge-aware filtering'),
|
||
|
('Median', 'Median', 'Median blur')],
|
||
|
name = "Filter",
|
||
|
description="TODO",
|
||
|
default='Median')
|
||
|
|
||
|
tlm_mesh_filtering_gaussian_strength : IntProperty(
|
||
|
name="Gaussian Strength",
|
||
|
default=3,
|
||
|
min=1,
|
||
|
max=50)
|
||
|
|
||
|
tlm_mesh_filtering_iterations : IntProperty(
|
||
|
name="Filter Iterations",
|
||
|
default=5,
|
||
|
min=1,
|
||
|
max=50)
|
||
|
|
||
|
tlm_mesh_filtering_box_strength : IntProperty(
|
||
|
name="Box Strength",
|
||
|
default=1,
|
||
|
min=1,
|
||
|
max=50)
|
||
|
|
||
|
tlm_mesh_filtering_bilateral_diameter : IntProperty(
|
||
|
name="Pixel diameter",
|
||
|
default=3,
|
||
|
min=1,
|
||
|
max=50)
|
||
|
|
||
|
tlm_mesh_filtering_bilateral_color_deviation : IntProperty(
|
||
|
name="Color deviation",
|
||
|
default=75,
|
||
|
min=1,
|
||
|
max=100)
|
||
|
|
||
|
tlm_mesh_filtering_bilateral_coordinate_deviation : IntProperty(
|
||
|
name="Color deviation",
|
||
|
default=75,
|
||
|
min=1,
|
||
|
max=100)
|
||
|
|
||
|
tlm_mesh_filtering_median_kernel : IntProperty(
|
||
|
name="Median kernel",
|
||
|
default=3,
|
||
|
min=1,
|
||
|
max=5)
|
||
|
|
||
|
tlm_use_default_channel : BoolProperty(
|
||
|
name="Use default UV channel",
|
||
|
description="Will either use or create the default UV Channel 'UVMap_Lightmap' upon build.",
|
||
|
default=True)
|
||
|
|
||
|
tlm_uv_channel : StringProperty(
|
||
|
name = "UV Channel",
|
||
|
description = "Use any custom UV Channel for the lightmap",
|
||
|
default = "UVMap")
|
||
|
|
||
|
tlm_use_uv_packer : BoolProperty(
|
||
|
name="Use UV Packer",
|
||
|
description="UV Packer will be utilized after initial UV mapping for optimized packing.",
|
||
|
default=False)
|
||
|
|
||
|
tlm_uv_packer_padding : FloatProperty(
|
||
|
name="Padding",
|
||
|
default=2.0,
|
||
|
min=0.0,
|
||
|
max=100.0,
|
||
|
subtype='FACTOR')
|
||
|
|
||
|
tlm_uv_packer_packing_engine : EnumProperty(
|
||
|
items = [('OP0', 'Efficient', 'Best compromise for speed and space usage.'),
|
||
|
('OP1', 'High Quality', 'Slowest, but maximum space usage.')],
|
||
|
name = "Packing Engine",
|
||
|
description="Which UV Packer engine to use.",
|
||
|
default='OP0')
|
||
|
|
||
|
#Padding
|
||
|
#Type
|
||
|
#Rescale
|
||
|
#Pre-rotate
|