import open3d as o3d def load_obj(file_path): """Carrega um arquivo OBJ usando open3d.""" mesh = o3d.io.read_triangle_mesh(file_path) return mesh def simplify_mesh(mesh, reduction_factor=0.5): """Reduz o número de triângulos da malha.""" target_number_of_triangles = int(len(mesh.triangles) * reduction_factor) simplified_mesh = mesh.simplify_quadric_decimation(target_number_of_triangles) return simplified_mesh def save_obj(mesh, file_path): """Salva a malha em formato OBJ.""" o3d.io.write_triangle_mesh(file_path, mesh) def simplify_obj_mesh(input_obj_path, output_obj_path, reduction_factor=0.5): """Simplifica a malha de um arquivo OBJ.""" # Carregar a malha do arquivo OBJ mesh = load_obj(input_obj_path) # Simplificar a malha simplified_mesh = simplify_mesh(mesh, reduction_factor) # Salvar a malha simplificada em formato OBJ save_obj(simplified_mesh, output_obj_path) # Caminhos dos arquivos input_obj_file = 'Mont.obj' output_obj_file = 'Mont_simplified.obj' # Fator de redução (0.5 para reduzir pela metade) reduction_factor = 0.05 # Simplificar a malha simplify_obj_mesh(input_obj_file, output_obj_file, reduction_factor)