71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import bpy, os
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def bake():
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    cam_name = "TLM-BakeCam-obj"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if cam_name in bpy.context.scene.objects:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        print("Camera found...")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        camera = bpy.context.scene.objects[cam_name]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        camera.data.octane.baking_camera = True
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        for obj in bpy.context.scene.objects:
							 | 
						||
| 
								 | 
							
								            bpy.ops.object.select_all(action='DESELECT')
							 | 
						||
| 
								 | 
							
								            obj.select_set(False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        iterNum = 2
							 | 
						||
| 
								 | 
							
								        currentIterNum = 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        for obj in bpy.context.scene.objects:
							 | 
						||
| 
								 | 
							
								            if obj.type == "MESH":
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_mesh_lightmap_use:
							 | 
						||
| 
								 | 
							
								                    iterNum = iterNum + 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if iterNum > 1:
							 | 
						||
| 
								 | 
							
								            iterNum = iterNum - 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        for obj in bpy.context.scene.objects:
							 | 
						||
| 
								 | 
							
								            if obj.type == 'MESH' and obj.name in bpy.context.view_layer.objects:
							 | 
						||
| 
								 | 
							
								                if obj.TLM_ObjectProperties.tlm_mesh_lightmap_use:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    currentIterNum = currentIterNum + 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    scene = bpy.context.scene
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    print("Baking obj: " + obj.name)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    print("Baking ID: " + str(currentIterNum) + " out of " + str(iterNum))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    bpy.ops.object.select_all(action='DESELECT')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    camera.data.octane.baking_group_id = currentIterNum
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    savedir = os.path.dirname(bpy.data.filepath)
							 | 
						||
| 
								 | 
							
								                    user_dir = scene.TLM_Engine3Properties.tlm_lightmap_savedir
							 | 
						||
| 
								 | 
							
								                    directory = os.path.join(savedir, user_dir)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    image_settings = bpy.context.scene.render.image_settings
							 | 
						||
| 
								 | 
							
								                    image_settings.file_format = "HDR"
							 | 
						||
| 
								 | 
							
								                    image_settings.color_depth = '32'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    filename = os.path.join(directory, "LM") + "_" + obj.name + ".hdr"
							 | 
						||
| 
								 | 
							
								                    bpy.context.scene.render.filepath = filename
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    resolution = int(obj.TLM_ObjectProperties.tlm_mesh_lightmap_resolution)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    bpy.context.scene.render.resolution_x = resolution
							 | 
						||
| 
								 | 
							
								                    bpy.context.scene.render.resolution_y = resolution
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    bpy.ops.render.render(write_still=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    else:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        print("No baking camera found")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    print("Baking in Octane!")
							 |