From e57c3b6ec9884db3e25e60a7a910f16e2c40a29e Mon Sep 17 00:00:00 2001 From: weixin_46229132 Date: Fri, 11 Apr 2025 10:47:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5obj=E5=88=86=E5=9D=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odm_preprocess.py | 2 +- post_pro/conv_obj2.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/odm_preprocess.py b/odm_preprocess.py index 2f3762d..1c7e379 100644 --- a/odm_preprocess.py +++ b/odm_preprocess.py @@ -17,7 +17,7 @@ from utils.visualizer import FilterVisualizer from post_pro.merge_tif import MergeTif from post_pro.merge_obj import MergeObj from post_pro.merge_laz import MergePly -from post_pro.conv_obj import ConvertOBJ +from post_pro.conv_obj2 import ConvertOBJ @dataclass diff --git a/post_pro/conv_obj2.py b/post_pro/conv_obj2.py index d796056..97a84a6 100644 --- a/post_pro/conv_obj2.py +++ b/post_pro/conv_obj2.py @@ -70,7 +70,7 @@ class ConvertOBJ: self.logger.info(f"开始切片网格 {grid_id} 的OBJ文件") os.makedirs(split_obj_dir) cmd = ( - f"D:\software\Obj2Tiles\Obj2Tiles.exe --stage Splitting --lods 1 --divisions 3 " + f"D:\\software\\Obj2Tiles\\Obj2Tiles.exe --stage Splitting --lods 1 --divisions 3 " f"{modified_obj} {split_obj_dir}" ) subprocess.run(cmd, check=True) @@ -86,16 +86,21 @@ class ConvertOBJ: osgb_file = os.path.splitext(obj_file)[0] + '.osgb' osgb_path = os.path.join(split_obj_dir, osgb_file) # 执行 osgconv 命令 - subprocess.run(['osgconv', obj_path, osgb_path], check=True) + subprocess.run(['osgconv', obj_path, osgb_path, '--compressed', + '--smooth', '--fix-transparency'], check=True) # 创建OSGB目录结构,复制文件 osgb_base_dir = os.path.join(self.output_dir, "osgb") data_dir = os.path.join(osgb_base_dir, "Data") for obj_file in obj_files: obj_file_name = os.path.splitext(obj_file)[0] - tile_dirs = os.path.join(data_dir, f"{obj_file_name}") + tile_dirs = os.path.join( + data_dir, f"grid_{grid_id[0]}_{grid_id[1]}_{obj_file_name}") os.makedirs(tile_dirs, exist_ok=True) - shutil.copy2(os.path.join(split_obj_dir, obj_file_name+".osgb"), tile_dirs) + shutil.copy2(os.path.join( + split_obj_dir, obj_file_name+".osgb"), tile_dirs) + os.rename(os.path.join(tile_dirs, obj_file_name+".osgb"), + os.path.join(tile_dirs, f"grid_{grid_id[0]}_{grid_id[1]}_{obj_file_name}.osgb")) def _create_merged_metadata(self): """创建合并后的metadata.xml文件"""