import bpy from math import radians import os from bpy_extras.io_utils import ExportHelper context = bpy.context scene = context.scene vl = context.view_layer bpy.ops.wm.ply_import(filepath="C:/Users/") bpy.ops.object.select_all(action='DESELECT') texture_path = "C:/Users/neryt/Grafika2023/PlanetCreator/" texture = bpy.data.images.load(texture_path) material = bpy.data.materials.new(name="TextureMaterial") material.use_nodes = True nodes = material.node_tree.nodes links = material.node_tree.links for node in nodes: if node.type == 'BSDF_PRINCIPLED': nodes.remove(node) shader_node = nodes.new(type='ShaderNodeTexImage') shader_node.image = texture output_node = nodes.get('Material Output') links.new(shader_node.outputs['Color'], output_node.inputs['Surface']) for obj in scene.objects: if (obj.type == 'MESH'): vl.objects.active = obj obj.select_set(True) print(obj.name) lm = obj.data.uv_layers.get("LightMap") if not lm: lm = obj.data.uv_layers.new(name="LightMap") lm.active = True bpy.ops.object.editmode_toggle() bpy.ops.mesh.select_all(action='SELECT') # for all faces bpy.ops.uv.smart_project(angle_limit=66, island_margin = 0.02) bpy.ops.object.editmode_toggle() if obj.type == 'MESH': obj.data.materials.append(material) obj.select_set(False) for obj in bpy.context.selected_objects: if obj.type == 'MESH': obj.data.materials.append(material) output_folder = "C:\\Users\\" os.makedirs(output_folder, exist_ok=True) for idx, obj in enumerate(bpy.data.objects): if obj.type == "MESH": bpy.context.view_layer.objects.active = obj obj.select_set(True) obj_name = f"roslina{idx + 1}" file_path = os.path.join(output_folder, f"{obj_name}.obj") bpy.ops.wm.obj_export(filepath=file_path, check_existing=False, export_selected_objects=True, apply_modifiers=True, export_smooth_groups=False, smooth_group_bitflags=False, export_normals=True, export_uv=True) obj.select_set(False)