APP下载

一种大规模倾斜摄影模型三维可视化方案

2017-05-11李新维李学飞

测绘通报 2017年4期
关键词:分块顶点纹理

李新维,邓 非,2,李学飞,吴 思

(1. 武汉大学测绘学院,湖北 武汉 430079; 2. 武汉大学国家领土主权与海洋权益协同创新中心,湖北 武汉 430079; 3. 中冶建筑研究总院有限公司,北京 100088; 4. 国家测绘地理信息局地下管线勘测工程院,四川 成都 610500)

一种大规模倾斜摄影模型三维可视化方案

李新维1,邓 非1,2,李学飞3,吴 思4

(1. 武汉大学测绘学院,湖北 武汉 430079; 2. 武汉大学国家领土主权与海洋权益协同创新中心,湖北 武汉 430079; 3. 中冶建筑研究总院有限公司,北京 100088; 4. 国家测绘地理信息局地下管线勘测工程院,四川 成都 610500)

提出了一种基于四叉树结构的大规模倾斜摄影模型三维可视化方案:首先采用二次误差测度(QEM)的半边折叠算法对三角网格模型进行分层几何简化;然后对分层简化的模型进行纹理映射和分块,分块结果采用Morton编码命名;最后将场景按金字塔结构进行LOD(多细节层次结构)组织。选取某一试验区域的真实倾斜模型数据进行了试验,结果表明,该方案能依据模型在计算机屏幕上所占的像素大小,动态加载倾斜模型数据,完成大规模场景的实时可视化。

倾斜摄影模型;网格简化;四叉树;多细节层次模型

三维城市模型在城市规划、虚拟自然资源保护和计算机游戏中具有重要的作用[1]。随着三维激光点云技术和摄影测量技术等空间数据获取技术的发展,三维模型的建模效率和精度在不断地提高,同时场景的复杂程度也在不断地提高[2]。特别是利用倾斜摄影技术生成的高质量三维模型,点云的密度极高,模型的三角面片数量通常会达到亿万级。海量倾斜模型数据的快速加载和流畅渲染,是倾斜摄影模型组织和可视化必须解决的一个难题。

目前,在不影响三维模型浏览时视觉真实感的前提下,可通过多细节层次模型技术(LOD)降低三维数据的复杂性,减少传送到图形硬件的几何数,从而提高三维数据的绘制速度[3]。构建LOD即对原始高分辨率的模型进行不同程度的几何简化和纹理降采样,然后根据视点位置,决定调用网格的层次,选取能代表原始物体的最好模型用于渲染。通常离视点越近,模型在屏幕上所占像素的数量越大,调用高精度的模型,反之,则调用低精度的模型。为了保证不同层次的模型切换时过渡平稳,不产生视觉上的跳跃,学者们提出了两种不同的LOD模型:离散LOD模型和连续LOD模型。离散LOD模型是在数据建模阶段预生成一系列不同层次的模型[4],对于一特定模型,不同层次间过渡的流畅性与模型的层次数量有关;连续LOD模型是在运行时产生任意多个分辨率的模型,实现模型的实时流畅显示。虽然离散LOD模型显示质量比连续LOD模型差,但其模型是一次生成然后再动态载入、替换,CPU占用要远小于连续LOD模型,更方便组织管理。因此,本文根据倾斜摄影模型的特点,采用离散LOD模型,在模型数据生产的过程中,自动生成LOD。

1 实现方案

倾斜模型数据生成离散LOD模型,最为关键的步骤就是网格简化,即基于输入的网格模型,自动构建出一系列与其对应的、保持其基本形状的不同精细程度的模型。目前在模型简化算法方面,国内外学者进行了许多研究。其中,比较有代表性的有:Rossignac等[5]提出了顶点聚类算法,即将三维模型用均匀的栅格进行划分,衡量栅格内每个顶点的重要性,并选取重要性最高的顶点作为栅格的代表顶点;Hoppe[6]提出了基于边折叠的渐进网格生成算法,即由一个基网格进行一系列的边折叠操作得到简化的网格;Garland[7]等提出了Qslim算法,选用空间某点到所有与之相邻的三角面的距离的平方和作为误差测度,选择误差最小的边进行折叠简化。但是,上述简化算法都只考虑了三维模型在几何特征上的简化,忽略了对模型表面纹理的处理(简化)。实际上,对于大规模倾斜影像数据的三维可视化,模型所附加的纹理的数据量要远大于几何,在计算机资源一定的情况下只有减少绘制过程中传入的纹理数据量,才能保证三维场景的实时渲染。考虑了纹理特征的简化算法大致分为两类:①在简化过程中保持纹理特征,主要代表有Garland等在Qslim算法上进行改进提出的结合纹理和颜色特征的Qslim算法。但是该算法在纹理信息不连续的情况下,边折叠寻找最优折叠目标点时,会得到错误的结果,导致简化的效果不理想[7]。②纹理特征保持与简化过程独立。该类方法不介入简化过程,而是在简化完成获得简化模型后,直接对简化模型进行特征恢复,主要代表为Cignoni等提出的恢复属性细节的方法。但是这类方法受简化程度的影响,可能采样不充分,最后导致存储的颜色信息不足,无法使得简化模型拥有和原模型近似的纹理贴图效果。因此,本文采用已有的几何简化算法(QEM算法)对模型进行简化,然后对简化模型重新进行纹理映射,以实现模型表面细节的恢复。具体方案如图1所示。

图1 大规模倾斜摄影模型三维可视化方案流程

1.1 模型简化

通用的模型局部简化操作是边折叠或顶点聚类。两种做法都是合并表面顶点和删除退化的三角形。边折叠操作通常合并由一条边连接的两个顶点,但顶点聚类操作合并一个包围盒内的顶点。半边折叠是一种特殊的边折叠操作[8],如图2所示,选择一个源顶点作为折叠的对象,折叠到另一个顶点。一次半边折叠操作可以减少1个顶点、2个面、3条边。本文采用半边折叠操作作为模型简化的方法。

图2 半边折叠操作

在简化的过程中,需要对每次边折叠前后产生的模型误差进行估计,即计算折叠代价。每次对折叠代价最小的边使用选定的简化方法进行简化,直到达到用户要求的简化程度。这里采用Garland提出的QEM算法来计算边折叠的代价:即将边折叠操作生成的新顶点到相关三角面距离的平方和作为误差度量。

倾斜摄影模型的每个三角面都是一个平面,平面方程表示为

ax+by+cz+d=0

式中,a、b、c满足a2+b2+c2=1。令F=(abcd)T代表该平面,点v的坐标为V(xyz1)T,则点v到平面p距离的平方为

(1)

式中

1.2 纹理映射

在上述简化过程中,只考虑了模型在几何上的精简。简化后的模型由于其几何位置的变动,纹理已经发生了扭曲,不能仅通过对原始纹理降低分辨率来达到纹理属性数据的简化,需要重新进行纹理映射来恢复纹理属性信息。

首先,对三角网格中的每个三角面,利用共线方程式计算出3个顶点在已完成定向工作的影像中的位置,如果3个顶点都在影像像幅范围内,则将该影像纳入该三角面的可视影像集合М。

(2)

由于城区建筑密度较大,遮挡现象比较严重。在利用透视关系得到每个三角面的可视纹理影像集合M后,本文使用成熟的三维碰撞检测库ColDet进行遮挡检测计算,剔除掉存在遮挡的影像,得到待选纹理影像集合S。综合考虑三角面在影像上的分辨率和影像拍摄视角(建筑物表面法向量和视线方向的夹角最小时视角最好),从待选纹理中选择出权值最大的影像作为三角面的初始纹理。边界上的三角面(两个三角形选择不同的初始影像作为纹理)由于光照等原因的影响,会产生纹理的破碎,为最大程度保障相邻三角面纹理的连续性,本文采用贪心算法选择其一阶环邻域内出现次数最多且在其待选纹理集合S中的初始纹理作为该三角面调整后的纹理,如图3所示。

图3 一次边界最优纹理调整示意图

对于三角网格中的每一连续块(具有相同的最优纹理),计算其纹理坐标,从纹理影像上提取相应的矩形外包纹理。最后将多个矩形纹理块进行纹理Packing(打包),并更新相应的纹理坐标,得到最终的纹理图。

1.3 模型层次结构组织

为了构建场景的金字塔模型,需要对场景进行分层分块,基本思想是:首先采用自底向上的策略对原始模型进行简化分层,得到不同分辨率的各层次模型;然后将各个层次的模型分割为2n×2n个矩形块(最顶层模型只有一个矩形块,模型越精细分割的块数越多,相邻的层次间模型的分割块数呈4倍的关系)。由于采用四叉树结构进行模型层次的组织,因此每一层模型的分块结果采用四进制的Morton编码方式进行命名存储[9],即按“Z”字型编码方式对每个小块进行编码命名。具体的层次结构和Morton编码规则如图4所示。

图4 模型层次结构和Morton编码

对于同一层的三角网格模型,每个分块所对应的Morton码的值是唯一的,因此Morton码实际上记录了每个分块所在位置的平面坐标信息,利用Morton码可以为每个分块位置建立索引。利用四进制形式表示的Morton码,很容易确定上一层次模型的某个分块所对应的下一层相同空间位置的4个分块,从而很容易建立起具有四叉树结构的LOD数据组织,如图5所示。

图5 倾斜模型的四叉树结构组织

2 试验及结果分析

为了验证本文所提出的大规模倾斜摄影模型三维可视化方案的有效性,将C++作为开发语言、开源的OSG(OpenSceneGraph)作为三维渲染引擎,对本文方案进行了实现;并且选取了某一地区低空无人机拍摄的一组城区数据,在Windows7操作系统下,采用如下微机硬件配置进行了试验:处理器:Inter(R) Core(TM) i7-4790 CPU @3.60 GHz,内存(RAM):16.0 GB,显卡:NVIDA GeForce GTX 960 2048 MB。

此次试验使用1个垂直相机和4个倾斜相机拍摄的497张分辨率为8176×6192像素的影像作为基础数据,测区范围为1 km2;利用SFM方法对影像进行高精度的影像定向及多视影像密集匹配算法进行密集点云的生成;然后依测区范围以200 m×200 m的格网对点云进行划分;最后利用Poisson构网算法,完成三维模型的几何重建。重建的几何模型如图6所示。

图6

在获取了三维网格模型后,利用SFM的高精度影像定向结果,将倾斜影像丰富的纹理信息映射到三维几何模型表面,得到带纹理的三维模型如图7所示。

图7 纹理映射后的三维模型

依据本文方案,对网格模型进行不同层次的简化,得到不同分辨率的模型如图8所示。

从图8中可以看出,模型在简化前后,较好地保留了其几何特征,用简化后的模型表示原三维几何模型,不会影响其视觉效果。然后,将简化后的模型进行分块,并重新进行纹理映射,按四叉树结构进行模型层次结构组织。最后将所有的格网模型组织在一起,完成整个三维大场景展示,最终效果如图9所示。

图8 模型简化得到不同分辨率的模型

图9 大规模倾斜三维模型实时展示

由于本文方案依据视点对模型进行调度,结合上视锥裁剪(只显示屏幕范围内的模型),理论上能完成任意大小场景的实时加载。

3 结 语

本文采用模型属性简化独立于几何简化的处理方式,应用半边折叠操作对倾斜模型进行几何精简,在简化过程中采用二次误差测度控制简化的方向,保障了模型的简化质量。在简化完成后,针对几何位置变动造成的纹理扭曲,利用多视影像及已有空三结果,对简化模型重新进行纹理映射,产生金字塔层次的不同分辨率(几何和纹理)的模型,最后利用四叉树结构对模型进行了分块和组织,生成了多细节层次结构。在实际的渲染过程中,根据视点距离四叉树中节点的中心距离,调用相应的节点。通过实际数据的试验结果表明,本文方案在保障场景的真实程度和细节表现的同时,有效地提高了渲染的效率,对城市大规模倾斜数据的三维可视化具有重要的指导意义。

[1] FRUEH C, SAMMON R, ZAKHOR A. Automated Texture Mapping of 3D City Models with Oblique Aerial Imagery[C]∥2nd International Symposium on 3D Data Processing, Visualization and Transmission. [S.l.]: IEEE, 2004: 396-403.

[2] XIONG W,WANG X,ZHU M.Study of LOD Terrain Rendering Algorithm Based on GPU[C]∥IET International Communication Conference on Wireless Mobile and Computing(CCWMC 2011). [S.l.]: IET,2011:476-481.

[3] 何旭锋. 大规模复杂场景的加速绘制方法研究与实现[D]. 成都:电子科技大学, 2009.

[4] 陈波, 董恒建, 韩俊伟. 真实地形绘图算法的比较与评价[J]. 长江大学学报(自然科学版), 2005, 2(1): 72-75.

[5] ROSSIGNAC J, BORREL P. Multi-resolution 3D Approximations for Rendering Complex Scenes[M].[S.l.]: Springer Berlin Heidelberg, 1993: 455-465.

[6] HOPPE H. Progressive Meshes[C]∥Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques. [S.l.]: ACM, 1996: 99-108.

[7] GARLAND M, HECKBERT P S. Surface Simplification Using Quadric Error Metrics[C]∥Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques. [S.l.]: ACM Press/Addison-Wesley Publishing Co., 1997: 209-216.

[8] 鲁玉良. 复杂虚拟场景的建模及模型简化方法研究[D]. 武汉:华中科技大学, 2006.

[9] 龚健雅. 一种基于自然数的线性四叉树编码[J]. 测绘学报, 1992, 21(2): 90-99.

[10] 梁策. 针对具有复杂属性的网格模型简化算法的研究[D]. 杭州:杭州电子科技大学, 2009.

[11] 徐源. 基于公路信息模型的三维交互式可视化研究[D]. 长沙:中南大学, 2014.

[12] 艾廷华,周梦杰,陈亚婕.专题地图属性信息的LOD表达与TreeMap可视化[J].测绘学报,2013,42(3): 453-460.

[13] 周艳, 朱庆, 黄铎. 三维城市模型中建筑物 LOD 模型研究[J]. 测绘科学, 2006, 31(5): 74-77.

A Visualization Plan for Large-scale 3D Models with Oblique Photogrammetry Technology

LI Xinwei1,DENG Fei1,2,LI Xuefei3,WU Si4

(1. School of Geodesy and Geomatics, Wuhan University, Wuhan 430079,China; 2. Collaborative Innovation Center for Territorial Sovereignty and Maritime Rights, Wuhan 430079,China; 3. Metallurgical Construction Research Institute Co. Ltd., Beijing 100088,China; 4. National Administration of Surveying,Mapping and Geoinformation Underground Pipeline Engineering Academy, Chengdu 610500,China)

A three-dimensional visualization scheme for large-scale oblique photography model based on quad-tree structure is proposed. Firstly, the triangular mesh model is simplified by using half-edge collapse of quadratic error measure (QEM), and then these hierarchical simplified models are textured and blocked, each block is named using Morton encoding rule. Finally, the scene is organized according to the pyramid structure of LOD (multi-level hierarchical structure).We evaluated our visualization plan for large-scale 3D models with oblique photogrammetry technology on a dataset of a city. Experiment results show that the method can dynamically load the appropriate models according to the pixel size on the screen. It is demonstrated that the schema is effective and useful for realtime visualization of large-scale 3D models with oblique photogrammetry technology.

3D Models with Oblique Photogrammetry Technology;mesh simplification;quad-tree;level of details

李新维,邓非,李学飞,等.一种大规模倾斜摄影模型三维可视化方案[J].测绘通报,2017(4):39-43.

10.13474/j.cnki.11-2246.2017.0116.

2016-09-20;

2017-02-09

国家自然科学基金 (41271431)

李新维(1991—),男,硕士,研究方向为摄影测量与遥感。E-mail:xinweil@whu.edu.cn 通信作者: 邓 非。E-mail:fdeng@sgg.whu.edu.cn

P23

A

0494-0911(2017)04-0039-05

猜你喜欢

分块顶点纹理
面向量化分块压缩感知的区域层次化预测编码
钢结构工程分块滑移安装施工方法探讨
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
关于4×4分块矩阵的逆矩阵*
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
懒交互模式下散乱不规则分块引导的目标跟踪*
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!