加入obj分块功能

This commit is contained in:
weixin_46229132 2025-04-11 10:47:28 +08:00
parent a25adbcc31
commit e57c3b6ec9
2 changed files with 10 additions and 5 deletions

View File

@ -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

View File

@ -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文件"""