APP下载

网络三维数字城市海量模型优化算法研究

2019-08-07程良勇李南江

测绘通报 2019年7期
关键词:模型库单面顶点

程良勇,李南江

(1. 天津市勘察院,天津 300191; 2. 星际空间(天津)科技发展有限公司,天津 300384)

三维数字城市通过虚拟现实技术和地理信息技术精确表达城市空间形态、布局、色彩、天际轮廓等重要信息,利用其强大的空间数据组织、管理与空间分析能力为用户提供信息查询、空间分析、信息统计、数据挖掘等功能技术服务。随着计算机技术和网络通信技术的不断成熟与发展,以及各专业领域业务需求的提升,三维数字城市逐渐从单机走向了网络Web前端。由于其空间数据库的海量特性,以及计算机存储、网络带宽等硬件资源限制,需要从软件、数据库层次突破技术瓶颈来解决此问题。

1 模型数据的自动优化

1.1 三维数字城市数据优化处理现状

近年来,三维数字城市建设发展迅速,但由于受硬件的限制,海量高精度模型的大范围应用一直是网络三维数字城市应用的一个瓶颈。LOD是解决三维高精细模型数据浏览和应用的基本方法,如何自动构建低级别的LOD模型,是LOD模型库构建的关键。模型结构的简化算法比较成熟,已有算法基本思路是重构模型的三角面,但模型面重构会引起模型纹理坐标的变化,导致纹理错乱,因此,已有算法难以真正应用于贴附纹理的三维数字城市模型中。目前,国内外比较知名的软件如Skyline、CityMaker等,仅对模型的纹理进行自动压缩生成低级别的LOD纹理,并没有减少模型的三角面数,导致海量数据量减少有限。

本文提出三维模型自适应面删除简化法和地形单面片生成法相结合的技术路线实现高精度三维模型面简化LOD模型库的自动建库,模型和纹理同时进行简化和压缩,在同等三维数字城市场景效果前提条件下,最大程度地节省计算机硬件资源,可解决海量三维数字城市高精度模型网络大范围浏览和应用问题。本文优化后的三维模型自适应面删除简化法可以根据设置条件自动计算域值并删除三角面,同时由于没有对模型结构重构,纹理不会发生错乱,可以自动生成模型面简化的可用LOD模型库。同时,采用构建单面片模型生成法自动构建最低级别地形LOD模型库。该方法是将地形场景通过分块、正视截图并自动生成单面片模型,可将数十万面的地形模型直接生成只有一个四边形的单面片模型,在保证视觉效果的同时,大幅度减少地形模型的三角面和纹理数量[1-4]。

1.2 模型自适应面删除简化算法

模型自适应面删除简化算法根据LOD模型不同级别的要求,设定简化条件并自动计算域值,降低级别模型,进行自动简化。算法流程如图1所示[5-11]。

详细流程步骤如下:

(1) 读取模型点信息。遍历读取模型的所有顶点,将顶点按次序存储于队列中,同时按照顶点数据和属性一一对应的关系,将法线坐标、纹理坐标、颜色坐标也按次序存储于队列中。

(2) 根据模型自身特点自适应计算删除条件。

(3) 逐一获取每个顶点,判断每个顶点的类型,判断准则是依据该顶点与相邻顶点、该顶点与邻边之间的空间关系,计算顶点类型和影响代价值,判断是否删除。

(4) 从代价值小的顶点及对应的属性数据开始删除,并重新计算相邻顶点的类型和代价值,直至没有符合条件的顶点可以删除[12]。

定义:特征边是指共享该边的两个三角形法线之间的夹角大于特征角的边。

由于模型的每一个顶点删除后对模型的影响不同,本文定义顶点对模型的影响代价值为α,α代表该点删除后对模型影响程度的大小。在删除模型顶点时,优先删除影响代价值较小的点,具体过程如下:

(1) 普通顶点影响代价值计算方法[13-15]。普通顶点是指不在特征边的顶点,如图2中A点。该点所在的面起伏不大,接近为平面,定义该顶点到接近平面的平均平面的距离d为删除后对模型的影响代价值α。平均平面为这些相邻三角面所有法线的平均法线方向对应的面。

假设顶点为O(x,y,z),求出的平均平面P的法线为normal(xn,yn,zn),该面上某点为point(xp,yp,zp),则当前点O的影响代价值α即为当前点到P的距离d,计算方法如下

(1)

(2)

d=|xn×(x-xp)+yn×(y-yp)+zn×(z-zp)|

(3)

式中,count为当前点O相邻三角形的个数;TNi为当前点O相邻的第i个三角形的法线向量;CPi为当前点O相邻的第i个三角形的中心点坐标;TAi为当前点O相邻的第i个三角形的面积。

(2) 特征点影响代价值计算方法。特征点是指边线点和角点,如图3所示。

该顶点到该顶点被删除后所形成的新边的距离d为删除后对模型的影响代价值α。当前点O(x,y,z)的相邻两边点分别为A(x0,y0,z0)、B(x1,y1,z1),则O的影响代价值α即为点O到空间直线AB的距离d,计算方法如下

(4)

式中

(5)

(6)

(7)

m=-ax0-by0-cz0

本文删除法中需计算出模型所有顶点的影响代价值α,并按照升序排序存储到列表Array中。

(3) LOD各级模型顶点删除自适应阈值计算[16-17]。经过大量模型面删除模型简化试验,推导出本文模型面删除简化方法效果最佳的顶点删除阈值自适应的计算方法

(8)

式中,P为模型的面删除简化比例(即需要删除的面占总面数的百分比);Lmax为LOD模型库构建的最大层级数,本文Lmax=4,即建筑模型共分为4个层级;L为当前需要简化的LOD的层级;Fn为当前简化模型的总面数,最大值不超过100万。

根据模型的面删除比例P计算模型的删除阈值为

α=Array(CArray×P)

(9)

式中,α为模型顶点删除的自适应阈值;Array为上文中提到的模型顶点影响代价值α按照升序排列生成的列表;CArray为Array列表的元素总数目,即模型顶点数目。

1.3 地形单面片生成法

针对地块的特点,本文提出了模型快照的方法,将复杂的模型地块模型生成单纹理单面片模型。具体为采用视点定位截图对完整的地块地形模型自动进行定位定范围截图,生成地块地形模型的正视图片,将正视图片自动制作成单面片的图片地形模型。由于经正射投影的物体具有大小尺寸不变的效果特点,因此生成正视图片时采用正射投影,即将标准分块的模型数据的世界坐标通过视点变换、投影变换和视口变换等系统矩阵投影变换操作最终正射投影到二维屏幕窗口。

(1) 视点变换。将模型的实际坐标值(x0,y0,z0)经过视点矩阵变换视点坐标系下的坐标值(x1,y1,z1),即

(10)

式中,描述摄像机向右的方向向量(rx,ry,rz)=(1,0,0);描述摄像机向前的方向向量(lx,ly,lz)=(0,0,-1);描述摄像机垂直向上的方向向量(ux,uy,uz)=(0,1,0);摄像机的位置向量为(px,py,pz)。

(2) 正射投影变换。视点摄像机的正射投影矩阵相当于设置了一个正射的长方体正射投影,通过投影变换将场景对象投影到投影体的镜头平面上,假设得到的投影坐标为(x2,y2,z2),即

(11)

其中,正射投影视域体是包含被投影物体的长方形体,它由两对三维坐标点进行描述,即(l,b,n)→(r,t,f)。

(3) 视口变换。经过视口矩阵变换,将投影坐标(x2,y2,z2)最终投影为二维屏幕窗口坐标(x3,y3,z3),即

(12)

视口矩阵主要是由视口的范围决定的,设视口的起点为(xv,yv),宽和高分别为w和h,视域体的远近裁减面的z值分别为f和n,x轴向右为正,y轴向下为正。

(4) 单面片模型定点定位快照截图生成单面片模型原理。通过上述的模型正射投影到屏幕窗口的方法将场景模型正射、完整地投影到给定的二维窗口上,同时利用相机截图的方法,将模型在二维窗口上的投影生成二维图片,将图片自动进行压缩处理,并由程序自动构建单面片的场景模型。

得到模型在场景中投影的正视纹理图片后,利用程序生成单面片模型,并将纹理贴图,生成最终的单面片地块场景模型。单块地块模型运用单面片自动生成法后的前后效果对比如图4所示,(a)为简化前的地块三维模型,面数为6.2万,(b)为生成的单面片地块模型。

2 网络Web应用试验及结果

本文将自适应面删除简化法和地形单面片生成法应用于天津市网络三维数字城市项目试验,采用具有面简化效果的LOD模型库来实现高精度海量数据的Web浏览与应用问题。

2.1 模型自适应面删除简化法试验及效果

本文将建筑模型分为L0、L1、L2、L3四级,采用自适应面删除简化法计算所有顶点对模型的影响。根据硬件的配置条件和经验值计算出系统能够流畅运行的总面数,根据该面数确定模型LOD库各级别的简化参数。简化参数对不同面数的模型设置不同的简化域值,然后对模型进行自动面简化处理。

本文在以上简化参数的基础上进行简化处理,效果比较如图5所示。其中(a)为简化前数据,(b)为本文方法简化后的数据,在满足视觉效果和应用需求的同时,场景中建筑模型的面数明显减少。简化前后效果对比见表1。

表1 建筑简化前后对比

2.2 地形单面片生成法试验及效果

采用地形单面片生成法来实现地块模型的LOD模型库生成,大范围三维数字城市场景模型运用单面片生成法前后效果对比如图6所示。(a)为原始地形数据,(b)为应用单面片模型生成法后的地形数据,简化前后效果对比见表2。

表2 地形简化前后对比

采用地形单面片生成法后,在保证视觉效果的同时,极大地简化了高精细地形的三角面数和纹理数据量,解决了特大三维数字城市建设中高精细三维场景模型大范围浏览与应用的难题。

2.3 面删除简化法和单面片生成法应用于网络三维数字城市

本文将面删除简化法和单面片生成法应用于天津市三维数字城市网络三维系统的建设,结合纹理压缩技术,结果如图7所示。将原始每平方千米500 MB、200万面的数据,最低级别LOD模型压缩简化为每平方千米60 MB、40万面,满足了三维数据在100 Mbps带宽网络环境下浏览和应用的要求。

3 结 语

本文利用三维模型自适应面删除简化法和地形模型单面片生成法相结合实现了城市高精度三维模型自动构建LOD模型库,解决了目前只能手工生成面简化的LOD模型的窘境,有效解决了网络海量高精度三维模型大范围应用问题。但是,本文提出的面删除简化算法如果参数设置不当,可能导致有些模型存在明显的面镂空的现象,因此需要根据经验和模型数据的实际情况制定相应的自适应简化系数方案。下一步将进一步改进面删除简化算法和地块单面片生成法,并将其推广应用到更大的范围和更复杂地形的三维数字城市系统建设和应用中。

猜你喜欢

模型库单面顶点
发根农杆菌诱导单面针毛状根及PCR 检测研究
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
基于Creo参数化建模的设备模型库建立方法
赵红育蚕丝单面绣作品《荷韵》
蛋糕盒
AA2024-AA7050 铝合金T型接头单面激光焊接的研究
Pro/E的三维往复压缩机参数化模型库的建立
基于模型库的现代成本会计计量系统研究
复杂圆柱壳结构参数化建模方法及模型库设计