forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			585 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			585 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import bpy, os
							 | 
						||
| 
								 | 
							
								from bpy.props import *
							 | 
						||
| 
								 | 
							
								from .. utility import utility
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def transfer_load():
							 | 
						||
| 
								 | 
							
								    load_folder = bpy.context.scene.TLM_SceneProperties.tlm_load_folder
							 | 
						||
| 
								 | 
							
								    lightmap_folder = os.path.join(os.path.dirname(bpy.data.filepath), bpy.context.scene.TLM_EngineProperties.tlm_lightmap_savedir)
							 | 
						||
| 
								 | 
							
								    print(load_folder)
							 | 
						||
| 
								 | 
							
								    print(lightmap_folder)
							 | 
						||
| 
								 | 
							
								    #transfer_assets(True, load_folder, lightmap_folder)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TLM_SceneProperties(bpy.types.PropertyGroup):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    engines = [('Cycles', 'Cycles', 'Use Cycles for lightmapping')]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #engines.append(('LuxCoreRender', 'LuxCoreRender', 'Use LuxCoreRender for lightmapping'))
							 | 
						||
| 
								 | 
							
								    #engines.append(('OctaneRender', 'Octane Render', 'Use Octane Render for lightmapping'))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_atlas_pointer : StringProperty(
							 | 
						||
| 
								 | 
							
								            name = "Atlas Group",
							 | 
						||
| 
								 | 
							
								            description = "Atlas Lightmap Group",
							 | 
						||
| 
								 | 
							
								            default = "")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_postatlas_pointer : StringProperty(
							 | 
						||
| 
								 | 
							
								            name = "Atlas Group",
							 | 
						||
| 
								 | 
							
								            description = "Atlas Lightmap Group",
							 | 
						||
| 
								 | 
							
								            default = "")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_lightmap_engine : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = engines,
							 | 
						||
| 
								 | 
							
								                name = "Lightmap Engine", 
							 | 
						||
| 
								 | 
							
								                description="Select which lightmap engine to use.", 
							 | 
						||
| 
								 | 
							
								                default='Cycles')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #SETTINGS GROUP
							 | 
						||
| 
								 | 
							
								    tlm_setting_clean_option : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Clean', 'Full Clean', 'Clean lightmap directory and revert all materials'),
							 | 
						||
| 
								 | 
							
								                ('CleanMarked', 'Clean marked', 'Clean only the objects marked for lightmapping')],
							 | 
						||
| 
								 | 
							
								                name = "Clean mode", 
							 | 
						||
| 
								 | 
							
								                description="The cleaning mode, either full or partial clean. Be careful that you don't delete lightmaps you don't intend to delete.", 
							 | 
						||
| 
								 | 
							
								                default='Clean')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_keep_cache_files : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Keep cache files", 
							 | 
						||
| 
								 | 
							
								        description="Keep cache files (non-filtered and non-denoised)", 
							 | 
						||
| 
								 | 
							
								        default=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_keep_baked_files : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Keep bake files", 
							 | 
						||
| 
								 | 
							
								        description="Keep the baked lightmap files when cleaning", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_repartition_on_clean : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Repartition on clean", 
							 | 
						||
| 
								 | 
							
								        description="Repartition material names on clean", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_renderer : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('CPU', 'CPU', 'Bake using the processor'),
							 | 
						||
| 
								 | 
							
								                ('GPU', 'GPU', 'Bake using the graphics card')],
							 | 
						||
| 
								 | 
							
								                name = "Device", 
							 | 
						||
| 
								 | 
							
								                description="Select whether to use the CPU or the GPU", 
							 | 
						||
| 
								 | 
							
								                default="CPU")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_scale : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('8', '1/8', '1/8th of set scale'),
							 | 
						||
| 
								 | 
							
								                ('4', '1/4', '1/4th of set scale'),
							 | 
						||
| 
								 | 
							
								                ('2', '1/2', 'Half of set scale'),
							 | 
						||
| 
								 | 
							
								                ('1', '1/1', 'Full scale')],
							 | 
						||
| 
								 | 
							
								                name = "Lightmap Resolution scale", 
							 | 
						||
| 
								 | 
							
								                description="Lightmap resolution scaling. Adjust for previewing.", 
							 | 
						||
| 
								 | 
							
								                default="1")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_supersample : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('2x', '2x', 'Double the sampling resolution'),
							 | 
						||
| 
								 | 
							
								                ('4x', '4x', 'Quadruple the sampling resolution')],
							 | 
						||
| 
								 | 
							
								                name = "Lightmap Supersampling", 
							 | 
						||
| 
								 | 
							
								                description="Supersamples the baked lightmap. Increases bake time", 
							 | 
						||
| 
								 | 
							
								                default="2x")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_savedir : StringProperty(
							 | 
						||
| 
								 | 
							
								        name="Lightmap Directory", 
							 | 
						||
| 
								 | 
							
								        description="Your baked lightmaps will be stored here.", 
							 | 
						||
| 
								 | 
							
								        default="Lightmaps", 
							 | 
						||
| 
								 | 
							
								        subtype="FILE_PATH")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_exposure_multiplier : FloatProperty(
							 | 
						||
| 
								 | 
							
								        name="Exposure Multiplier", 
							 | 
						||
| 
								 | 
							
								        default=0,
							 | 
						||
| 
								 | 
							
								        description="0 to disable. Multiplies GI value")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_alert_on_finish : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Alert on finish", 
							 | 
						||
| 
								 | 
							
								        description="Play a sound when the lightmaps are done.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_setting_apply_scale : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Apply scale", 
							 | 
						||
| 
								 | 
							
								        description="Apply the scale before unwrapping.", 
							 | 
						||
| 
								 | 
							
								        default=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_play_sound : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Play sound on finish", 
							 | 
						||
| 
								 | 
							
								        description="Play sound on finish", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_compile_statistics : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Compile statistics", 
							 | 
						||
| 
								 | 
							
								        description="Compile time statistics in the lightmap folder.", 
							 | 
						||
| 
								 | 
							
								        default=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_apply_on_unwrap : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Apply scale", 
							 | 
						||
| 
								 | 
							
								        description="TODO", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								    tlm_save_preprocess_lightmaps : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Save preprocessed lightmaps", 
							 | 
						||
| 
								 | 
							
								        description="TODO", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #DENOISE SETTINGS GROUP
							 | 
						||
| 
								 | 
							
								    tlm_denoise_use : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Enable denoising", 
							 | 
						||
| 
								 | 
							
								        description="Enable denoising for lightmaps", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_denoise_engine : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Integrated', 'Integrated', 'Use the Blender native denoiser (Compositor; Slow)'),
							 | 
						||
| 
								 | 
							
								                ('OIDN', 'Intel Denoiser', 'Use Intel denoiser (CPU powered)'),
							 | 
						||
| 
								 | 
							
								                ('Optix', 'Optix Denoiser', 'Use Nvidia Optix denoiser (GPU powered)')],
							 | 
						||
| 
								 | 
							
								                name = "Denoiser", 
							 | 
						||
| 
								 | 
							
								                description="Select which denoising engine to use.", 
							 | 
						||
| 
								 | 
							
								                default='Integrated')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #FILTERING SETTINGS GROUP
							 | 
						||
| 
								 | 
							
								    tlm_filtering_use : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Enable denoising", 
							 | 
						||
| 
								 | 
							
								        description="Enable denoising for lightmaps", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_engine : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('OpenCV', 'OpenCV', 'Make use of OpenCV based image filtering (Requires it to be installed first in the preferences panel)'),
							 | 
						||
| 
								 | 
							
								                ('Shader', 'Shader', 'Make use of GPU offscreen shader to filter')],
							 | 
						||
| 
								 | 
							
								                name = "Filtering library", 
							 | 
						||
| 
								 | 
							
								                description="Select which filtering library to use.", 
							 | 
						||
| 
								 | 
							
								                default='OpenCV')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #Numpy Filtering options
							 | 
						||
| 
								 | 
							
								    tlm_numpy_filtering_mode : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Blur', 'Blur', 'Basic blur filtering.')],
							 | 
						||
| 
								 | 
							
								                name = "Filter", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='Blur')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #OpenCV Filtering options
							 | 
						||
| 
								 | 
							
								    tlm_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_filtering_gaussian_strength : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Gaussian Strength", 
							 | 
						||
| 
								 | 
							
								        default=3, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=50)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_iterations : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Filter Iterations", 
							 | 
						||
| 
								 | 
							
								        default=5, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=50)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_box_strength : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Box Strength", 
							 | 
						||
| 
								 | 
							
								        default=1, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=50)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_bilateral_diameter : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Pixel diameter", 
							 | 
						||
| 
								 | 
							
								        default=3, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=50)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_bilateral_color_deviation : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Color deviation", 
							 | 
						||
| 
								 | 
							
								        default=75, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=100)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_bilateral_coordinate_deviation : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Coordinate deviation", 
							 | 
						||
| 
								 | 
							
								        default=75, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=100)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_filtering_median_kernel : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Median kernel", 
							 | 
						||
| 
								 | 
							
								        default=3, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=5)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_clamp_hdr : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Enable HDR Clamp", 
							 | 
						||
| 
								 | 
							
								        description="Clamp HDR Value", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_clamp_hdr_value : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="HDR Clamp value", 
							 | 
						||
| 
								 | 
							
								        default=10, 
							 | 
						||
| 
								 | 
							
								        min=0, 
							 | 
						||
| 
								 | 
							
								        max=20)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    #Encoding properties
							 | 
						||
| 
								 | 
							
								    tlm_encoding_use : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Enable encoding", 
							 | 
						||
| 
								 | 
							
								        description="Enable encoding for lightmaps", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_encoding_device : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('CPU', 'CPU', 'Todo'),
							 | 
						||
| 
								 | 
							
								                ('GPU', 'GPU', 'Todo.')],
							 | 
						||
| 
								 | 
							
								                name = "Encoding Device", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='CPU')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    encoding_modes_1 = [('RGBM', 'RGBM', '8-bit HDR encoding. Good for compatibility, good for memory but has banding issues.'),
							 | 
						||
| 
								 | 
							
								                    ('RGBD', 'RGBD', '8-bit HDR encoding. Similar to RGBM.'),
							 | 
						||
| 
								 | 
							
								                    ('HDR', 'HDR', '32-bit HDR encoding. Best quality, but high memory usage and not compatible with all devices.'),
							 | 
						||
| 
								 | 
							
								                    ('SDR', 'SDR', '8-bit flat encoding.')]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    encoding_modes_2 = [('RGBD', 'RGBD', '8-bit HDR encoding. Similar to RGBM.'),
							 | 
						||
| 
								 | 
							
								                    ('LogLuv', 'LogLuv', '8-bit HDR encoding. Different.'),
							 | 
						||
| 
								 | 
							
								                    ('HDR', 'HDR', '32-bit HDR encoding. Best quality, but high memory usage and not compatible with all devices.'),
							 | 
						||
| 
								 | 
							
								                    ('SDR', 'SDR', '8-bit flat encoding.')]
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    tlm_encoding_mode_a : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = encoding_modes_1,
							 | 
						||
| 
								 | 
							
								                name = "Encoding Mode", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='HDR')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_encoding_mode_b : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = encoding_modes_2,
							 | 
						||
| 
								 | 
							
								                name = "Encoding Mode", 
							 | 
						||
| 
								 | 
							
								                description="RGBE 32-bit Radiance HDR File", 
							 | 
						||
| 
								 | 
							
								                default='HDR')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_encoding_range : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="Encoding range", 
							 | 
						||
| 
								 | 
							
								        description="Higher gives a larger HDR range, but also gives more banding.", 
							 | 
						||
| 
								 | 
							
								        default=6, 
							 | 
						||
| 
								 | 
							
								        min=1, 
							 | 
						||
| 
								 | 
							
								        max=255)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_decoder_setup : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Use decoder", 
							 | 
						||
| 
								 | 
							
								        description="Apply a node for decoding.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_split_premultiplied : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Split for premultiplied", 
							 | 
						||
| 
								 | 
							
								        description="Some game engines doesn't support non-premultiplied files. This splits the alpha channel to a separate file.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_encoding_colorspace : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('XYZ', 'XYZ', 'TODO'),
							 | 
						||
| 
								 | 
							
								                ('sRGB', 'sRGB', 'TODO'),
							 | 
						||
| 
								 | 
							
								                ('NonColor', 'Non-Color', 'TODO'),
							 | 
						||
| 
								 | 
							
								                ('ACES', 'Linear ACES', 'TODO'),
							 | 
						||
| 
								 | 
							
								                ('Linear', 'Linear', 'TODO'),
							 | 
						||
| 
								 | 
							
								                ('FilmicLog', 'Filmic Log', 'TODO')],
							 | 
						||
| 
								 | 
							
								            name = "Color Space", 
							 | 
						||
| 
								 | 
							
								            description="TODO", 
							 | 
						||
| 
								 | 
							
								            default='Linear')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_compression : IntProperty(
							 | 
						||
| 
								 | 
							
								        name="PNG Compression", 
							 | 
						||
| 
								 | 
							
								        description="0 = No compression. 100 = Maximum compression.", 
							 | 
						||
| 
								 | 
							
								        default=0, 
							 | 
						||
| 
								 | 
							
								        min=0, 
							 | 
						||
| 
								 | 
							
								        max=100)
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    tlm_format : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('RGBE', 'HDR', '32-bit RGBE encoded .hdr files. No compression available.'),
							 | 
						||
| 
								 | 
							
								                 ('EXR', 'EXR', '32-bit OpenEXR format.')],
							 | 
						||
| 
								 | 
							
								                name = "Format", 
							 | 
						||
| 
								 | 
							
								                description="Select default 32-bit format", 
							 | 
						||
| 
								 | 
							
								                default='RGBE')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_override_object_settings : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Override settings", 
							 | 
						||
| 
								 | 
							
								        description="TODO", 
							 | 
						||
| 
								 | 
							
								        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')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_mesh_lightmap_unwrap_mode : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('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.'),
							 | 
						||
| 
								 | 
							
								                 ('Xatlas', 'Xatlas', 'TODO')],
							 | 
						||
| 
								 | 
							
								                name = "Unwrap Mode", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='SmartProject')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_postpack_object : BoolProperty( #CHECK INSTEAD OF ATLASGROUPB
							 | 
						||
| 
								 | 
							
								        name="Postpack object", 
							 | 
						||
| 
								 | 
							
								        description="Postpack object into an AtlasGroup", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_mesh_unwrap_margin : FloatProperty(
							 | 
						||
| 
								 | 
							
								        name="Unwrap Margin", 
							 | 
						||
| 
								 | 
							
								        default=0.1, 
							 | 
						||
| 
								 | 
							
								        min=0.0, 
							 | 
						||
| 
								 | 
							
								        max=1.0, 
							 | 
						||
| 
								 | 
							
								        subtype='FACTOR')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_headless : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Don't apply materials", 
							 | 
						||
| 
								 | 
							
								        description="Headless; Do not apply baked materials on finish.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_atlas_mode : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Prepack', 'Pre-packing', 'Todo.'),
							 | 
						||
| 
								 | 
							
								                 ('Postpack', 'Post-packing', 'Todo.')],
							 | 
						||
| 
								 | 
							
								                name = "Atlas mode", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='Prepack')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_alert_sound : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('dash', 'Dash', 'Dash alert'),
							 | 
						||
| 
								 | 
							
								                ('noot', 'Noot', 'Noot alert'),
							 | 
						||
| 
								 | 
							
								                ('gentle', 'Gentle', 'Gentle alert'),
							 | 
						||
| 
								 | 
							
								                ('pingping', 'Ping', 'Ping alert')],
							 | 
						||
| 
								 | 
							
								                name = "Alert sound", 
							 | 
						||
| 
								 | 
							
								                description="Alert sound when lightmap building finished.", 
							 | 
						||
| 
								 | 
							
								                default="gentle")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_metallic_clamp : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('ignore', 'Ignore', 'Ignore clamping'),
							 | 
						||
| 
								 | 
							
								                ('skip', 'Skip', 'Skip baking metallic materials'),
							 | 
						||
| 
								 | 
							
								                ('zero', 'Zero', 'Set zero'),
							 | 
						||
| 
								 | 
							
								                ('limit', 'Limit', 'Clamp to 0.9')],
							 | 
						||
| 
								 | 
							
								                name = "Metallic clamping", 
							 | 
						||
| 
								 | 
							
								                description="TODO.", 
							 | 
						||
| 
								 | 
							
								                default="ignore")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_texture_interpolation : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Smart', 'Smart', 'Bicubic when magnifying.'),
							 | 
						||
| 
								 | 
							
								                ('Cubic', 'Cubic', 'Cubic interpolation'),
							 | 
						||
| 
								 | 
							
								                ('Closest', 'Closest', 'No interpolation'),
							 | 
						||
| 
								 | 
							
								                ('Linear', 'Linear', 'Linear')],
							 | 
						||
| 
								 | 
							
								                name = "Texture interpolation", 
							 | 
						||
| 
								 | 
							
								                description="Texture interpolation.", 
							 | 
						||
| 
								 | 
							
								                default="Linear")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_texture_extrapolation : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('REPEAT', 'Repeat', 'Repeat in both direction.'),
							 | 
						||
| 
								 | 
							
								                ('EXTEND', 'Extend', 'Extend by repeating edge pixels.'),
							 | 
						||
| 
								 | 
							
								                ('CLIP', 'Clip', 'Clip to image size')],
							 | 
						||
| 
								 | 
							
								                name = "Texture extrapolation", 
							 | 
						||
| 
								 | 
							
								                description="Texture extrapolation.", 
							 | 
						||
| 
								 | 
							
								                default="EXTEND")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_verbose : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Verbose", 
							 | 
						||
| 
								 | 
							
								        description="Verbose console output", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_compile_statistics : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Compile statistics", 
							 | 
						||
| 
								 | 
							
								        description="Compile lightbuild statistics", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_override_bg_color : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Override background", 
							 | 
						||
| 
								 | 
							
								        description="Override background color, black by default.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_override_color : FloatVectorProperty(name="Color",
							 | 
						||
| 
								 | 
							
								        description="Background color for baked maps", 
							 | 
						||
| 
								 | 
							
								        subtype='COLOR', 
							 | 
						||
| 
								 | 
							
								        default=[0.5,0.5,0.5])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_reset_uv : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Remove Lightmap UV", 
							 | 
						||
| 
								 | 
							
								        description="Remove existing UV maps for lightmaps.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_apply_modifiers : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Apply modifiers", 
							 | 
						||
| 
								 | 
							
								        description="Apply all modifiers to objects.", 
							 | 
						||
| 
								 | 
							
								        default=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_batch_mode : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Batch mode", 
							 | 
						||
| 
								 | 
							
								        description="Batch collections.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_network_render : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Enable network rendering", 
							 | 
						||
| 
								 | 
							
								        description="Enable network rendering (Unstable).", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_network_paths : PointerProperty(
							 | 
						||
| 
								 | 
							
								        name="Network file", 
							 | 
						||
| 
								 | 
							
								        description="Network instruction file", 
							 | 
						||
| 
								 | 
							
								        type=bpy.types.Text)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_network_dir : StringProperty(
							 | 
						||
| 
								 | 
							
								        name="Network directory", 
							 | 
						||
| 
								 | 
							
								        description="Use a path that is accessible to all your network render devices.", 
							 | 
						||
| 
								 | 
							
								        default="", 
							 | 
						||
| 
								 | 
							
								        subtype="FILE_PATH")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_cmft_path : StringProperty(
							 | 
						||
| 
								 | 
							
								        name="CMFT Path", 
							 | 
						||
| 
								 | 
							
								        description="The path to the CMFT binaries", 
							 | 
						||
| 
								 | 
							
								        default="", 
							 | 
						||
| 
								 | 
							
								        subtype="FILE_PATH")
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    tlm_create_spherical : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Create spherical texture", 
							 | 
						||
| 
								 | 
							
								        description="Merge cubemap to a 360 spherical texture.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_write_sh : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Calculate SH coefficients", 
							 | 
						||
| 
								 | 
							
								        description="Calculates spherical harmonics coefficients to a file.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_write_radiance : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Write radiance images", 
							 | 
						||
| 
								 | 
							
								        description="Writes out the radiance images.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_invert_direction : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Invert direction", 
							 | 
						||
| 
								 | 
							
								        description="Inverts the direction.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_environment_probe_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 = "Probe Resolution", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='256')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_environment_probe_engine : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('BLENDER_EEVEE', 'Eevee', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('CYCLES', 'Cycles', 'TODO')],
							 | 
						||
| 
								 | 
							
								                name = "Probe Render Engine", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='BLENDER_EEVEE')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_load_folder : StringProperty(
							 | 
						||
| 
								 | 
							
								        name="Load Folder",
							 | 
						||
| 
								 | 
							
								        description="Load existing lightmaps from folder",
							 | 
						||
| 
								 | 
							
								        subtype="DIR_PATH")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_load_atlas : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Load lightmaps based on atlas sets", 
							 | 
						||
| 
								 | 
							
								        description="Use the current Atlas list.", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_utility_set : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Scene', 'Scene', 'Set for all objects in the scene.'),
							 | 
						||
| 
								 | 
							
								                 ('Selection', 'Selection', 'Set for selected objects.'),
							 | 
						||
| 
								 | 
							
								                 ('Enabled', 'Enabled', 'Set for objects that has been enabled for lightmapping.')],
							 | 
						||
| 
								 | 
							
								                name = "Set", 
							 | 
						||
| 
								 | 
							
								                description="Utility selection set", 
							 | 
						||
| 
								 | 
							
								                default='Scene')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_resolution_weight : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Single', 'Single', 'Set a single resolution for all objects.'),
							 | 
						||
| 
								 | 
							
								                 ('Dimension', 'Dimension', 'Distribute resolutions based on object dimensions.'),
							 | 
						||
| 
								 | 
							
								                 ('Surface', 'Surface', 'Distribute resolutions based on mesh surface area.'),
							 | 
						||
| 
								 | 
							
								                 ('Volume', 'Volume', 'Distribute resolutions based on mesh volume.')],
							 | 
						||
| 
								 | 
							
								                name = "Resolution weight", 
							 | 
						||
| 
								 | 
							
								                description="Method for setting resolution value", 
							 | 
						||
| 
								 | 
							
								                default='Single')
							 | 
						||
| 
								 | 
							
								        #Todo add vertex color option
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_resolution_min : 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')],
							 | 
						||
| 
								 | 
							
								                name = "Minimum resolution", 
							 | 
						||
| 
								 | 
							
								                description="Minimum distributed resolution", 
							 | 
						||
| 
								 | 
							
								                default='32')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_resolution_max : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('64', '64', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('128', '128', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('256', '256', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('512', '512', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('1024', '1024', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('2048', '2048', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('4096', '4096', 'TODO')],
							 | 
						||
| 
								 | 
							
								                name = "Maximum resolution", 
							 | 
						||
| 
								 | 
							
								                description="Maximum distributed resolution", 
							 | 
						||
| 
								 | 
							
								                default='256')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_remove_met_spec_link : BoolProperty(
							 | 
						||
| 
								 | 
							
								        name="Remove image link", 
							 | 
						||
| 
								 | 
							
								        description="Removes the connected node on metallic or specularity set disable", 
							 | 
						||
| 
								 | 
							
								        default=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_utility_context : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('SetBatching', 'Set Batching', 'Set batching options. Allows to set lightmap options for multiple objects.'),
							 | 
						||
| 
								 | 
							
								                 ('EnvironmentProbes', 'Environment Probes', 'Options for rendering environment probes. Cubemaps and panoramic HDRs for external engines'),
							 | 
						||
| 
								 | 
							
								                 ('LoadLightmaps', 'Load Lightmaps', 'Options for loading pre-built lightmaps.'),
							 | 
						||
| 
								 | 
							
								                 ('NetworkRender', 'Network Rendering', 'Distribute lightmap building across multiple machines.'),
							 | 
						||
| 
								 | 
							
								                 ('MaterialAdjustment', 'Material Adjustment', 'Allows adjustment of multiple materials at once.'),
							 | 
						||
| 
								 | 
							
								                 ('TexelDensity', 'Texel Density', 'Allows setting texel densities of the UV.'),
							 | 
						||
| 
								 | 
							
								                 ('GLTFUtil', 'GLTF Utilities', 'GLTF related material utilities.')],
							 | 
						||
| 
								 | 
							
								                name = "Utility Context", 
							 | 
						||
| 
								 | 
							
								                description="Set Utility Context", 
							 | 
						||
| 
								 | 
							
								                default='SetBatching')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tlm_addon_uimode : EnumProperty(
							 | 
						||
| 
								 | 
							
								        items = [('Simple', 'Simple', 'TODO'),
							 | 
						||
| 
								 | 
							
								                 ('Advanced', 'Advanced', 'TODO')],
							 | 
						||
| 
								 | 
							
								                name = "UI Mode", 
							 | 
						||
| 
								 | 
							
								                description="TODO", 
							 | 
						||
| 
								 | 
							
								                default='Simple')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TLM_GroupListItem(bpy.types.PropertyGroup):
							 | 
						||
| 
								 | 
							
								    obj: PointerProperty(type=bpy.types.Object, description="The object to bake")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TLM_UL_GroupList(bpy.types.UIList):
							 | 
						||
| 
								 | 
							
								    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
							 | 
						||
| 
								 | 
							
								        custom_icon = 'OBJECT_DATAMODE'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if self.layout_type in {'DEFAULT', 'COMPACT'}:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            amount = 0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            for obj in bpy.context.scene.objects:
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_mesh_lightmap_use:
							 | 
						||
| 
								 | 
							
								                    if obj.TLM_ObjectProperties.tlm_mesh_lightmap_unwrap_mode == "AtlasGroupA":
							 | 
						||
| 
								 | 
							
								                        if obj.TLM_ObjectProperties.tlm_atlas_pointer == item.name:
							 | 
						||
| 
								 | 
							
								                            amount = amount + 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            row = layout.row()
							 | 
						||
| 
								 | 
							
								            row.prop(item, "name", text="", emboss=False, icon=custom_icon)
							 | 
						||
| 
								 | 
							
								            col = row.column()
							 | 
						||
| 
								 | 
							
								            col.label(text=item.tlm_atlas_lightmap_resolution)
							 | 
						||
| 
								 | 
							
								            col = row.column()
							 | 
						||
| 
								 | 
							
								            col.alignment = 'RIGHT'
							 | 
						||
| 
								 | 
							
								            col.label(text=str(amount))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        elif self.layout_type in {'GRID'}:
							 | 
						||
| 
								 | 
							
								            layout.alignment = 'CENTER'
							 | 
						||
| 
								 | 
							
								            layout.label(text="", icon = custom_icon)
							 |