Smart3D系列教程8之 《模型合并——相邻地区多次建模结果合并》

迄今为止,Wish3D已经出品推出了7篇系列教程,从倾斜摄影的原理方法、采集照片的技巧、Smart3D各模块的功能应用、小物件的照片重建、大区域的地形重建到DSM及正射影像的处理生产,立足于建模软件的基本功能点和原始数据的采集,通过不同的重建目标,不同的生产目的多方位地介绍说明了Smart3D建模软件对倾斜摄影数据的处理生产过程。最后一篇讲述如何手动配置一个S3C索引,将处理完毕的倾斜摄影分块数据通过索引在Acute3D Viewer中加载出来。

此次根据群友实际生产当中遇到的实际问题,并受广泛要求编写本《模型合并教程》。

1

适用场景以及原理

Smart3D模型合并的适用场景:

▪ 相邻区域的模型分多次建模后,模型成果放在一起展示。

▪ 同一区域的数据因数据量太大,分块进行空三并输出模型后的成果合并展示。

Smart3D模型合并的原理:

1.Smart3D生成模型的时候不论什么投影坐标系统,都有一个原点(类似于CAD当中的0,0点,也可以认为是局部坐标系的坐标原点),生成出的模型的三角格网里面的顶点坐标全都是相对于该坐标原点而来。在提交reconstruction的时候可以设置该坐标原点,如图1:

2.Smart3D生成模型的时候,因为机器配置(内存、cpu、显卡)等因素,可能会导致数据量大的时候,模型不能不分块,选择分块后,会根据机器的配置设置分块的大小,有了分块方法和分块大小后,Smart3D会自动为每一块计算出块的名称。比如:Tile_+004_+003。并且构建块的名称的时候是从坐标原点开始的。分块后的结果如图2:

基于上述原理,只要是坐标原点一致,且分块大小一致的模型生成成果都可以直接合并,(前提,分块大小一致)。

2

模型合并方法

1.直接合并文件夹

此种方法需要确认如下信息

需要确定合并的模型的坐标原点是否一致,查看方法,图1当中的Advanced options,或者是模型同级目录下的metedata.xml文件:

需要确定分块大小是否一致,查看方法,图2当中的TileSize,或者把数据加载到LocaSpaceViewer里面,用量测功能简单测量一下。(说明:如果接边不是非常严格,或者两块相邻的模型,中间有一定的间隔,只要坐标原点一致,即使分块大小不一致,只要没有重复的瓦片编号也是可以合并的)

2. 在使用Smart3D导出模型的时候,设置相同的bounds(可以通过导入kml范围的方式来实现),这样所有的编号就都不会重复了,出的模型可以直接合并文件夹。

3. 已经生成好的osgb格式的模型文件,也是可以合并的,所有的模型顶点坐标都是相对坐标原点的,因此只要对模型的坐标原点进行平移就可以了,此方法设计到模型本身的修改,不建议使用,常规的操作可以通过编写代码的形式读取模型的每一个顶点然后修改。

4.如果只是想看到合并后的效果,或者是放在一起进行展示,可以直接使用lsv加载两块倾斜摄影的数据,在生成lfp的时候可以通过设置坐标原点进行偏移、旋转、调整高度,让两块相邻的模型展示的更好。

5. 以上所有方法都不能完全保证接边问题,要想分块处理,并合并分块处理后的结果,需要通过控制点来完成。控制点的要求,每一个块都要包含适量的控制点,分块时候照片的重叠度要大于航线高度的1.5倍。(牵涉到模型数据采集阶段的要求,此处不做详细说明,有兴趣的可以了解下Smart3D的培训,内有详细介绍,此方法可以保证城市级别的三维倾斜模型分块后完美接边。

3

基于模型合并的知识延伸

1.如果已经对整个区域生成好了模型,发现只有一小部分地区,模型效果不满意,然后进行了补拍,此时需要重新生成所有模型么?

答案:不用,只需要把补拍的照片导入到已经空三成功的block里,然后重新提交空三,空三完成后,保持上次的生成参数不变,只提交不满意的tiles即可。然后直接拷贝新生成的tiles文件夹到上次的模型结果替换掉老的tiles即可。

2.机器配置太低,或者数据量太大,导致分块后,块的总个数达到1000甚至10000以上,此时因文件个数太多,导致浏览速度慢,会看到模型一块块的往外蹦,如何加快?

答案:Smart3D生成模型后也并不是就一成不变了,根节点数太多的情况下,会导致浏览速度和浏览体验急剧下降,一个场景打开了几分钟了,还在读取。针对此问题可以参考倾斜摄影根节点合并,合并后的数据,几乎秒加,瞬间就看到了整个场景的状态,想浏览什么地方就浏览什么地方。

3.我想学习更多Smart3D建模技能,该怎么办

答案:可参加我司推出的Smart3D建模培训

原文地址:https://www.cnblogs.com/Wish3D/p/7149538.html