目录
- [1 概述](#1 概述)
- [2 详论](#2 详论)
- [2.1 切割单体化](#2.1 切割单体化)
- [2.2 矢量单体化](#2.2 矢量单体化)
- [2.3 ID单体化](#2.3 ID单体化)
- [2.4 模型重建单体化](#2.4 模型重建单体化)
- [3 总结](#3 总结)
1 概述
为了改进倾斜摄影模型数据在实际GIS场景应用中诸多的缺点,一个非常热门的优化方向就是单体化。所谓单体化,是指让倾斜摄影数据像矢量数据那样,具备要素特征,进而可以关联属性,进行空间查询和空间分析。换句话说,我们需要给倾斜摄影数据增加一些语义,能够正确区分建筑物、道路、绿地、水系以及城市部件等地物要素,进而很好的关联业务,产生实际的应用价值。
2 详论
以笔者的见识来看,倾斜单体化模型的实现可以有以下四种方式:
2.1 切割单体化
既然倾斜摄影模型数据上的地物要素构建的有好有差,那么我们可以将比较好的地物要素从倾斜摄影模型上裁剪下来,比如建筑物。通过建筑物矢量帮助我们进行空间计算,将建筑物矢量范围内的连续的三角面从倾斜摄影模型上截取出来,从而实现单体化。其实反过来想,倾斜摄影数据上很多内容都可以通过地形+影像的方式替换的,而像道路、绿地、水系这些地物要素也是依据地形的,城市部件这些要素倾斜摄影往往又无能为力。可能真正有价值进行单体化的可能也就是建筑物、大型地标或者大型基础设施了。但说实话,这也算是不错的技术方案了,至少我们不用看到很多建模错误的区域,搭配其他三维模型数据,也能构建出比较出色的三维可视化场景。
2.2 矢量单体化
如果不想通过矢量进行真实的物理切割,那么也可以考虑通过三维图形技术来实现单体化。其原理是在进行三维渲染时,将矢量面的几何数据传递到GPU中,判断每个顶点是否在其范围内。如果在范围内,就高亮该区域显示的颜色;或者,使用类似阴影体(Shadow Volume,三维图形中一种常见的生成阴影的算法)的技术,来使矢量的单体化区域高亮。在另一方面,由于矢量本身是具有属性数据的,这个属性数据也可以作为这个单体化区域的属性数据。
矢量单体化可以有另外一种类似的较为简单的实现方案:可以绘制包裹住单体化区域的透明带颜色的几何体。平时该几何体隐藏,在选中时就进行显示。当然,这个几何体也是基于矢量生成的。这种方案比较适合比较规整的建筑物三维物体对象。
不过,无论是哪种实现方案,都离不开与矢量数据的聚合。这种单体化方式实际上是将二维矢量面和三维倾斜摄影模型结合起来了,因此可以充分利用传统二维GIS矢量数据的查询、计算与分析等能力,从而实现了与GIS场景业务的关联。而且这种方案主要是采用了计算机图形技术的实现,在保证了实时性和效率的前提下实现难度也不是很高,因此也算是一种不错的解决方案。
2.3 ID单体化
所谓ID单体化,是指给倾斜摄影模型的每个想要单体化的区域的连续网格赋予一个特定的ID,这样在选中的时候我们获取到这个ID并对其高亮显示。具体来说,这需要在数据层面和渲染层面的配合。在数据层面,我们需要知道模型上单体化区域的顶点,并对其增加一个自定义的ID属性。这样在进入三维渲染时,通过帧缓存技术我们可以在渲染画面之外额外再渲染一帧ID纹理图。拾取选中实质上就是采样这个ID纹理图的值,并将顶点ID是这个值的顶点颜色高亮显示。
在笔者看来,这个单体化方案比较复杂,需要同时从数据和渲染上两个维度进行改进才能完全实现。但是这个方案对性能影响最小,不用再聚合一个二维矢量数据,是一个完全从三维角度出发提出的解决方案。实际上,Cesium和Cesium开发的3DTiles格式就完全实现了这种思路,在这个数据格式中,每个瓦片数据都定义了一个名为BATCHID的顶点属性,并将其关联上一个属性表BatchTable。
另外,这种单体化方案用在倾斜摄影数据上最大的缺点就是需要进行预处理,而且处理难度还不低。事实上,这个预处理过程往往就是采用矢量单体化的原理来实现,既然如此还不如直接使用矢量单体化的方案。不过,ID单体化的原理可以用在其他类型的三维模型,因为很多三维模型是按照一个物体要素为单位来建立的,它们是天然的单体化模型。
2.4 模型重建单体化
这种单体化的思路是,既然倾斜摄影重建的模型有各种各样的缺点,那么干脆就加入人工干预,重新构建单体化三维模型。不过这种人工干预并不是像在3D Max那种三维建模软件那样,根据人工建模师自己的判断进行建模,而是基于数字摄影测量的双像立体测图的原理,在立体模型中采集单体化的三维模型。双像立体测图是传统航空摄影测量生产4D产品的重要阶段,可用于采集DLG和DEM。现在有了倾斜摄影测量方法,使得从立体上采集地物要素成为了可能。
我们应该知道,倾斜摄影模型是使用三维重建技术进行自动化构建的,所以总是会显得很平滑,对锐利或者突变区域的表现度不够,或者建模错误。使用立体测图采集单体化的好处是其操作是人工进行的,可以采集出横平竖直的三维模型,尤其是对于建筑物来说。这对于可视化的效果是非常大的提升。另外,由于这个采集的过程是人工操作的,因此天然就将地物要素单体化出来,不仅仅是建筑物,一些比较复杂的基础设施(例如高架、桥梁),或者城市部件(例如路灯、指示牌)等都可以进行采集,这无疑大大扩展了倾斜摄影的技术在GIS场景中应用。
当然,这个单体化方案也是有缺点的。最大的缺点就是专业性太强,即使我们使用专业的软件普通人也不一定能操作好,还需要专业的采集人员来进行作业。在国内,武汉天际航信息科技股份有限公司的精细化单体建模以及模型修饰软件DP-Modeler是业内应用比较广泛的倾斜摄影模型数据编辑软件,可以支持在单体化并编辑出地表特定要素的三维模型。
3 总结
上述几种倾斜摄影模型单体化的方案各有优缺点,并没有最优解,最好是根据实际的需求采用适合的方案。这几种方案对比如下表所示:
单体化方法 | 技术思路 | 预处理过程 | 模型效果 |
---|---|---|---|
切割单体化 | 三维模型物理切割 | 思路简单 | 配合其他三维模型使用 |
矢量单体化 | 聚合矢量数据+图形渲染技术 | 无需处理 | 与倾斜模型一致 |
ID单体化 | 将ID作为顶点属性数据渲染 | 过程繁琐 | 与倾斜模型一致 |
模型重建单体化 | 航测立体采集模型 | 专业性强 | 配合其他三维模型使用 |