菜单

ContextCapture(原Smart3D)教程:水面约束(水面补洞)

2019年7月2日 - ContextCapture(原Smart3D)教程

【问题描述】

ContextCapture中,对于水面而言,由于特征点较少,软件在计算时很难匹配正确,导致输出模型的水面通常是支离破碎的。Smart3D针对这种情况提供了一个约束工具,用户手动的为水面添加平面约束后,输出的水面模型就会非常平整。

【添加方法】

请留意这个功能只能在ContextCapture center版本中才能使用。

首先,完成空三后,先进行一次常规建模,然后在Acute 3D viewer中打开,用测量工具测量一下水面的高度。

再次提交一次建模,然后如下图所示:选择Reconstruction constraints选项,这里提供两种加限制的方式。

contextcapture Reconstruction constraints

第一种是谷歌地图的KML格式,对ContextCapture中已导入照片的block点击右键,输出为kml格式,则谷歌地图会根据照片中的GPS数据自动匹配到照相的位置,然后如下截图所示,通过在谷歌地图中绘制polygon选定水面区域,注意这里的高度一定要设置对,可以参考第一次建模后测量出的高度。(如果高度不匹配则kml文件无法导入进ContextCapture。)然后保存这个polygon后,会在谷歌地图左侧列表中出现,点击鼠标右键将其保存为KML文件。然后导入到ContextCapture中。再次进行建模即可。

contextcapture水面约束

另一种方式是导入obj格式文件,如果模型是有地理坐标系的,那么obj文件也要定义相同的坐标系和中心点,高度也要正确。

如果对OBJ文件的设置不太熟悉,建议使用谷歌地图的KML文件方式。

最后进行建模时,软件会针对手动添加的约束对指定区域进行平面化处理。

案例效果:

修复前:

CC水面补洞

修复后:

CC水面补洞后效果

ps:

1、错误:无法添加表面约束,因为它与重建没有相交

添加表面约束

解决办法:一般是我们添加表面约束时Altitude 设置错误,导致没有与我们的模型产生交界处,我们只要在Acute3D Viewer中重新测量出正确的高程并设置,导出kml即可。

2、 设置高度时,一定要设置测量范围内最高的高度,否则可能可能出现部分水面破洞无法被约束等问题,即水面破洞修复不完全。

3、 ContextCapture的表面约束不仅仅适用于水面修复,还适合于草坪、公路、建筑等等的约束压平。

发表评论

邮箱地址不会被公开。 必填项已用*标注