一种与视点相关的用于地形网格生成的误差度量方法

文档序号:6420229阅读:189来源:国知局
专利名称:一种与视点相关的用于地形网格生成的误差度量方法
技术领域
本发明涉及一般的图像数据处理或产生,尤其涉及一种与视点相关的用于地形网格生成的误差度量方法。
背景技术
在大规模地形的实时可视化中,原始地形数据通常表示为地形正规网格高度场(DEM),网格采样点的个数通常是(2n+1)×(2n+1)。当n十分大时,如果将相邻采样点构成三角形网格(该网格称为原始地形网格),那么三角形数目是十分巨大的,由于硬件条件的限制(如处理器的计算速度,显卡的绘制速度等),地形的实时虚拟漫游的实现十分困难。如果要精确的实时地形漫游,对大规模地形数据来说将不可能实现。因此,就需要在实时地形漫游时,对显示的地形进行简化。考虑到实时可视化时观察屏幕的分辨率有限,则有以下的几个性质(1)任意给定一个视点,看到的地形区域总是有限的;(2)当视点距离地形越近,所看到的地形细节越精细,同时所见的区域范围就越小;(3)当视点距离地形越远,所见的区域范围就越大,但所看到的地形细节越粗糙。
因此对大规模地形进行基于视点的层次细节简化是一项十分有效的提高可视化效率的方法。该方法的主要工作如下所述任意给定一个视点,根据一个依赖于视点及屏幕分辨率的地形误差度量,从原始地形网格中自动构造出误差控制在给定范围内的简化的三角网格模型。这里的误差是指简化后地形数据和原始地形数据之间的误差,这种误差可以在世界坐标系下也可以在屏幕坐标系下。误差的度量方法直接影响到实时地形漫游的质量,如果依赖于视点及屏幕分辨率的地形误差度量方法设计得好,则构造出的简化的三角网格模型将能以较小的三角形数目,误差计算的时间较少,在实时显示的有限时间间隔内在给定视点处忠实地反映出地形的原貌。
通常,这种误差度量方法主要是评估简化后的地形网格和原始地形网格之间的几何误差在屏幕空间上的投影误差。已有误差度量方法有以下几种1.在ROAM方法中[Duchaineau 1997](Mark A.Duchaineau,Murray Wolinsky,David E.Sigeti,Mark C.Miller,Charles Aldrich,and Mark B.Mineev-Weinstein,“ROAMing TerrainReal-time Optimally Adapting Meshes,”IEEE Visualization’97,81-88,Nov.1997.),采用了物体空间和屏幕空间的层次误差判据,在物体空间中对每个三角形使用一个平行于三角形的包围体(Wedgie)来估计三角形的误差,并将其投影变换到屏幕空间确定其扭曲的程度作为屏幕空间的判据。ROAM的计算比较复杂,且对每一帧都需要重新计算每个三角形的投影误差。在地形的连续层次细节模型绘制中,CPU的主要计算量就是误差的计算,所以ROAM提出的判据无论在存储还是计算量上,都是低效的。
2.[Blow2000](Jonathan Blow,“Terrain Rendering at High Levels of Detail”,Proceedings of the 2000 Game Developers Conference,Mar.2000.)提出了三角形的误差判据等值面的概念,在这个等值面上,三角形的屏幕误差ρ等于阈值τ,当视点位于该等值面外时(ρ<τ),三角形无需剖分,只有当视点位于等值面内时(ρ>τ),才对该三角形进行剖分。为了简化计算,对每个三角形采用球面作为误差判据等值面,记录球的半径值。使用该度量方法的一个缺点是每个三角形的误差判据等值面是根据预先给定的阈值在预处理中计算的,在实时绘制中,用户无法改变原设定的屏幕误差阈值。
3.[Linsdrom2001,2002](Peter Lindstrom and V.Pascucci,“Visualization oflarge terrains made easy,”IEEE Visualization 2001,363-370,Oct.2001.PeterLindstrom and V.Pascucci.“Terrain Simplification SimplifiedA GeneralFramework for View-Dependent Out-of-Core Visualization”.IEEE Transaction onVisualization and Computer Graphics,2002.)在[Blow2000]基础上,根据顶点的依赖关系分析了物体空间和屏幕空间的饱和误差,使用结点的层次包围球,通过计算视点到包围球的最近距离,保守地计算该结点所包含的三角形在屏幕空间的简化误差。由于需要保证子结点的误差不超过父结点的误差,会过高估计了三角形的屏幕投影误差,使三角形数目增多。同时该方法需要在每个顶点上存储物体空间的误差和包围球半径两个值,存储效率不高。

发明内容
本发明的目的在于针对现有技术的不足,发明了一种新的与视点相关的用于地形网格生成的误差度量方法,该度量方法能比较快速,有效且保守地估计生成的网格数据与原有网格顶点在经过绘制过程后在视觉上所呈现的误差。误差判断无论在精确度还是在存储上,都是十分有效的。本发明可解决地形模型的实时可视化及层次细节简化过程中的误差度量问题。
为实现上述目的,本发明采用的技术方案如下1)确定每个地形网格剖分顶点的影响区域对原始地形采用三角形二剖分法生成地形网格,然后确定每个地形网格剖分顶点的影响区域;2)确定每个地形网格剖分顶点的高度误差;3)确定每个地形网格剖分顶点的误差包围体;4)在屏幕空间中,任意给定视点,实时计算每个地形网格剖分顶点的屏幕误差。
地形网格剖分顶点影响区域是指以该顶点为斜边中点的等腰直角三角形,以及和该三角形共享斜边的等腰直角三角形,在x-y平面上的投影所占的区域。
对于每个地形网格剖分顶点,它的高度误差就是指在该地形网格剖分顶点影响区域内的所有地形采样点的高度与该点高度的差的绝对值的最大值。
地形网格剖分顶点误差包围体是一个以该顶点为中心的正菱柱体,当顶点处于不同的层次,正菱形柱是不同的,在奇数层为一立方体,偶数层为立方体旋转45°的正菱形柱。该包围体为以该顶点为中心的菱柱体,它的上下底面在x-y平面的投影就是该地形网格剖分顶点的影响区域,高度为该地形网格剖分顶点最大误差的两倍。
每个地形网格剖分顶点的屏幕误差由两个投影度量来表示,即地形网格剖分顶点的高度误差的屏幕投影和该顶点的高度三角形的屏幕投影面积差。
本发明与背景技术相比,具有的有益的效果是本发明的计算大规模地形网格生成的误差度量方法计算效率高,每次至多需要7个加法,5个乘法,同时在地形每个采样点上只需要另外存储一个高度误差信息,存储效率非常高,符合大规模地形网格实时绘制的要求。并且该误差估计比较精确,在相同的屏幕空间误差条件下,产生的三角形数目更少。同时由于引入了屏幕投影面积差,使得生成的三角形网格更为均匀,改善了大规模地形网格实时绘制的画面显示质量。


下面结合附图和实施例对本发明作进一步说明。
图1是本发明方法的流程图;图2是地形网格在不同层次细节下的三角形网格表示及三角形与剖分点的对应关系;图3是地形网格剖分顶点高度误差;图4是地形网格剖分顶点的影响区域及相应的误差包围体;图5是地形网格剖分顶点的高度误差的屏幕投影和高度三角形的屏幕投影误差。
具体实施例方式
本发明的一种与视点相关的用于地形网格生成的误差度量方法,如图1所示,包括四个步骤(1)确定每个地形网格剖分顶点的影响区域;(2)确定每个地形网格剖分顶点的高度误差;(3)确定每个地形网格剖分顶点的误差包围体;(4)在屏幕空间中,任意给定一个视点,计算每个地形网格剖分顶点的屏幕误差。流程如图1所表示首先系统读取原始地形数据,即DEM数据,对原始地形进行三角形网格化,然后使用本发明的四个步骤来度量每个地形三角形误差,再遍历每个地形三角形,如果该三角形满足误差要求,绘制该三角形,如果不满足误差要求,剖分该三角形,再使用本发明的四个步骤来度量三角形误差,直到满足误差要求,当所有的地形三角形绘制完成,就完成了地形场景的绘制。
为了方便描述,先做如下约定地形数据为一个地形高度场(DEM),它定义在x-y平面,高度方向为z方向。地形高度场可形式化地表示为{z(i·Δ,j·Δ)|0≤i,j≤2n,Δ为正数常量,n为正整数}。地形采样点是指在地形高度场中具有精确高度值的点,高度值由地形高度场给出,其坐标为(i·Δ,j·Δ,z(i·Δ,j·Δ))。屏幕空间是指在投影屏幕上定义的二维欧式空间。
1).对地形高度场采用三角形二剖分法生成地形网格,并确定每个地形网格剖分顶点的影响区域在地形网格简化算法中,首先要确定地形网格的多分辨率表示方式,这样才能估计使用不同分辨率的网格时的简化误差。在该发明中,地形网格的表示方法是采用三角形二叉树的表示方式,如图2表示了地形网格剖分的过程。即首先将地形高度场在x-y平面上的四个角点所对应的四个地形采样点构成两个共享斜边的等腰直角三角形(称这两个三角形在第1层,它们是同一层次的),然后再对每个等腰直角三角形,连接直角顶点与斜边中点,将该三角形剖分成两个子三角形(这两个子三角形就是在父三角形的下一层,称为第2层);对于生成的子三角形按照同样的剖分方法进行递规剖分,直到所生成的三角形的三个顶点的x坐标或y坐标之差的最大值等于Δ。这样生成了一个多层次地形网络。在该地形网格中,那些存在子三角形的等腰直角三角形的斜边中点称为地形网格剖分顶点。在这个步骤需要确定每个地形网格剖分顶点的影响区域。地形网格剖分顶点的影响区域包括同一层次上所有以该地形网格剖分顶点为顶点的三角形,以及这些三角形的所有剖分的子三角形,在x-y平面上的投影。这样的影响区域根据剖分层次的奇偶性不同而形状不同,如图4a所示,图中黑点即为当前地形网格剖分顶点,影响区域即为图中灰色填充区域,左图表示了剖分层次为偶数的情况,右图表示了剖分层次为奇数的情况。
可公式化表示如下地形网格剖分顶点的Vi的影响区域是一个由两个共享斜边的等腰直角三角形形成的菱形三角形对,Vi在共享斜边的中点,如图3所示,它可以使用以下公式进行计算 其中v=(x,y),vi=(xi,yi),||v||∞=max(|x|,|y|),||v||l=|x+y|,l为i所处的层次,n表示地形网格的最精细剖分层次。
2)确定每个地形网格剖分顶点的高度误差对于每个地形网格剖分顶点,它的高度误差就是指在该地形网格顶点影响区域内的所有地形网格采样点的高度与该点高度的差的绝对值的最大值(即地形采样点与高度为该点高度的截面距离的最大值)。这个步骤就是完成每个地形网格剖分顶点高度误差的计算。如附图2,任意一个位于整个地形内部的地形网格剖分顶点Vi在x-y平面上的投影均为某一直角三角形斜边的中点。设该直角三角形的斜边为(Vl,Vr)。图3表示了某一采样分辨率下各个采样点的高度,ε为当前层次某一采样点到点Vi的高度差,图中的平面表示高度为Vi高度的截面。那么,在Vi上记录的高度误差值等于该点的影响区域内所有地形网格采样点的高度与该点高度的差的绝对值的最大值(即地形网格采样点与高度为Vi高度的截面距离的最大值)。
可公式化表示如下如步骤(1)所说,地形网格剖分顶点Vi的影响区域可表示为菱形三角形对Di=(Ti,Tib),如图3所示,那么地形网格剖分顶点Vi的高度误差εi计算如下ϵi=maxj∈D(i)|zj-zi|]]>该误差计算了该影响区域内所有地形采样点与地形网格剖分顶点Vi的高度误差,精确地表示了地形网格剖分顶点Vi的影响区域Di与原始地形高度场对应区域之间的高度差。
3)计算每个地形网格剖分顶点的误差包围体地形网格剖分顶点误差包围体是一个以该顶点为中心的正菱柱体,当顶点处于不同的层次,正菱形柱是不同的(可参看图2,图4a),在奇数层为一立方体,偶数层为立方体旋转45°的正菱形柱。该包围体为以该顶点为中心的菱柱体,它的上下底面在x-y平面的投影就是该地形网格剖分顶点的影响区域,高度为该地形网格剖分顶点最大误差的两倍。如图4所示,图4b中的包围体就是图4a中黑点所对应的包围体。
公式化表示如下地形网格剖分顶点Vi的包围体Bi(可参看图4)是一个以Vi为中心的正菱柱体,它的上下底面在x-y平面上的投影为Vi的影响区域Ol(vi),高度为Vi的高度误差εi的两倍。可以表示为Bi={(x,y,z)|(x,y)∈Ol(v),|z-zi|≤εi}4).在屏幕空间中,任意给定一个视点,计算每个地形网格剖分顶点的屏幕误差在实时简化过程中,根据任意给定的视点,需要计算地形网格剖分顶点的屏幕误差。它可以使用两种误差度量来表示,即地形网格剖分顶点高度误差的屏幕投影,如图5a所示,和地形网格剖分顶点的高度三角形的屏幕投影面积差,如图5b所示。
地形网格剖分顶点的高度三角形为一等腰三角形,其底边为该顶点的影响区域所对应的等腰直角三角形对的共享斜边在x-y平面的投影,同时底边所面对的三角形顶点为该地形网格剖分顶点。如图5b中,高度三角形就是三角形ViVlVr。
通过计算视点到地形网格剖分顶点误差包围体的最小距离,可以确定地形网格剖分顶点高度误差的屏幕投影。
如图5a所示,任意给定视点e,地形网格剖分顶点Vi高度误差的屏幕投影定义如下ρi1=λϵidBi]]>其中dBi=minx∈Bid(e,x),]]>为视点e到地形网格剖分顶点Vi的误差包围体Bi的最小距离;εi为地形网格剖分顶点Vi在物体空间中的高度误差; w是屏幕空间宽度的像素个数,是视域广角。
dBi的计算方法如下首先计算dBi在x-y平面的投影,记为dh。如图4所示,延长菱形各边把菱形外面的区域分成八个区域,根据区域相对与地形网格剖分顶点的对称性,仅需考虑两个区域A,B,在图4b中,当视点在区域A时,dh就是点到直线的距离,这个计算过程仅需要四个加法,两个乘法;而视点在区域B时,dh就是到菱形的最近一个顶点的距离,为了消除平方根,需要计算距离的平方,共五次加法,两次乘法。再同时考虑高度方向(z方向),若视点e落在地形网格剖分顶点Vi的误差包围体Bi的的垂直方向区间内,即|ze-zi|≤εi时,则只需要计算视点与包围体在水平方向的距离,否则,就需同时计算水平和垂直方向的分量,记dBi在高度方向的投影为dv,则有dv=|ze-zi|-εi那么可以计算得到dBidBi2=dh2+dv2]]>地形网格剖分顶点的高度三角形的屏幕投影面积差的计算如下记地形网格剖分顶点Vi的影响区域对应的等腰直角三角形对的共享斜边VlVr在水平面投影的长度为Ei,在物体空间中高度三角形ViVlVr的面积误差为0.5εiEi,那么其屏幕投影面积差为,如图5b中黑色区域所示ρi2=λ2ϵiEi2dBi2]]>λ,dBi,εi如上所述。
权利要求
1.一种与视点相关的用于地形网格生成的误差度量方法,其特征在于包括以下四个步骤1).确定每个地形网格剖分顶点的影响区域,对原始地形采用三角形二剖分法生成地形网格,然后确定每个地形网格剖分顶点的影响区域;2)确定每个地形网格剖分顶点的高度误差;3)确定每个地形网格剖分顶点的误差包围体;4)在屏幕空间中,任意给定视点,实时计算每个地形网格剖分顶点的屏幕误差。
2.根据权利要求1所述的一种与视点相关的用于地形网格生成的误差度量方法,其特征在于地形网格剖分顶点影响区域是指以该顶点为斜边中点的等腰直角三角形,以及和该三角形共享斜边的等腰直角三角形,在x-y平面上的投影所占的区域。
3.根据权利要求1所述的一种与视点相关的用于地形网格生成的误差度量方法,其特征在于对于每个地形网格剖分顶点,它的高度误差就是指在该地形网格剖分顶点影响区域内的所有地形采样点的高度与该点高度的差的绝对值的最大值。
4.根据权利要求1所述的一种与视点相关的用于地形网格生成的误差度量方法,其特征在于地形网格剖分顶点误差包围体是一个以该顶点为中心的正菱柱体,当顶点处于不同的层次,正菱形柱是不同的,在奇数层为一立方体,偶数层为立方体旋转45°的正菱形柱,该包围体为以该顶点为中心的菱柱体,它的上下底面在x-y平面的投影就是该地形网格剖分顶点的影响区域,高度为该地形网格剖分顶点最大误差的两倍。
5.根据权利要求1所述的一种与视点相关的用于地形网格生成的误差度量方法,其特征在于每个地形网格剖分顶点的屏幕误差由两个投影度量来表示,即地形网格剖分顶点的高度误差的屏幕投影和该顶点的高度三角形的屏幕投影面积差。
全文摘要
本发明公开了一种与视点相关的用于地形网格生成的误差度量方法。包括四个步骤确定每个地形网格剖分顶点的影响区域;确定每个地形网格剖分顶点的高度误差;确定每个地形网格剖分顶点的误差包围体;在屏幕空间中,任意给定一个视点,计算每个地形网格剖分顶点的屏幕误差。本发明的计算大规模地形网格生成的误差度量方法计算效率高,同时在地形每个采样点上只需要另外存储一个高度误差信息,存储效率非常高,符合大规模地形网格实时绘制的要求。并且该误差估计比较精确,在相同的屏幕空间误差条件下,产生的三角形数目更少。同时由于引入了屏幕投影面积差,使得生成的三角形网格更为均匀,改善了大规模地形网格实时绘制的画面显示质量。
文档编号G06T17/05GK1545071SQ20031010888
公开日2004年11月10日 申请日期2003年11月24日 优先权日2003年11月24日
发明者华炜, 陆艳青, 周栋, 鲍虎军, 炜 华 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1