一种与视点相关的基于四队列优化的地形网格生成方法

文档序号:6420228阅读:127来源:国知局
专利名称:一种与视点相关的基于四队列优化的地形网格生成方法
技术领域
本发明涉及一般的图像数据处理或产生,尤其涉及一种与视点相关的基于四队列优化的地形网格生成方法。
背景技术
为了实现大规模地形实时漫游,必须对原始地形数据所生成的地形网格进行简化。视点相关的地形网格简化生成算法,是指在当前视点下根据给定的误差阈值对地形网格进行有效的简化,使得简化后生成的地形三角形网格和原始的网格在给定视点观察时几乎没有什么差别。地形网格简化生成的方法有以下几种1.自底向上的逐层简化生成方法,即从网格的最底层开始,对满足条件的三角形进行合并,直到三角形的误差满足给定的阈值,见[Linsdrom1996]PeterLindstrom,David Koller,William Ribarsky,Larry F.Hodges,Nick Faust,and Gregory Turner,“Real-time,Continuous Level of Detail Rendering ofHeight Fields,”Proceedings of SIGGRAPH 96,109-118.,简化依赖于地形最精细分辨率网格的尺寸,无论在计算还是在存储上都相对于整个地形的数据,对于大规模地形是无效的。
2.自顶向下的逐步细化,地形网格从最粗的三角形开始逐步剖分细化,直到三角形的误差满足给定的阈值,见[Linsdrom2001,2002](Peter Lindstrom and V.Pascucci,“Visualization of large terrains made easy,”IEEEVisualization 2001,363-370,Oct.2001;Peter Lindstrom and V.Pascucci.“Terrain Simplification SimplifiedA General Framework for View-Dependent Out-of-Core Visualization”.IEEE Transaction onVisualization and Computer Graphics,2002.),该方法每一帧都是从最粗的两个三角形出发,执行自顶向下的剖分,无法利用视域之间的连贯性。
3.为了有效地利用地形漫游时视域之间的连贯性,ROAM使用两个队列——剖分队列和合并队列来控制三角网格剖分的精度。可以根据绘制能力来决定三角形的数量,ROAM算法对实时地形绘制系统保证了固定帧速的绘制,但是在实时绘制过程中,每次优先级队列需要更新,其复杂度为0(nlogn),重新计算优先级也很消耗CPU的时间。

发明内容
本发明的目的在于针对现有技术的不足,提出一种与视点相关的基于四队列优化的地形网格生成方法,使得地形构网能利用视域连贯性,同时还能控制构网的三角形数目,使得生成的地形网格给定的误差计算下最小,符合大规模地形实时漫游的要求,使得地形的实时漫游更加流畅,显示的画面质量更高。
为了达到上述目的,本发明采用的技术方案如下1).地形网格及四队列的初始化初始地形为两个共享斜边的等腰直角三角形,根据初始视点,计算这两个三角形在屏幕空间投影误差,对地形三角形进行剖分,使地形三角形的误差达到精度要求,将剖分得到的地形三角形和这些地形三角形构成的三角形对分别放入四队列,完成初始化;2).误差的重新计算及四队列更新根据变换后的视点,重新计算每个地形三角形或者地形三角形对的屏幕空间投影误差,根据误差,更新四队列;3).四队列驱动的三角形构网比较剖分队列和合并队列的第一项,根据两者的误差大小决定进行三角形的剖分或合并,在剖分或合并后更新四队列。
四队列是需要剖分的三角形队列和不需要剖分三角形的队列,需要合并的三角形队列和不需要合并的三角形队列,需要剖分的三角形队列根据其误差值从大到小排列,而不需要剖分的三角形队列则无需排列,需要合并的三角形队列根据其误差值从小到大排列,而不需要合并的三角形队列则无需排列。
本发明与背景技术相比,具有的有益的效果是本发明利用了视域之间的连贯性,即前一视点的地形网格和当前视点的地形网格变动不大。不仅能更有效的减少实时构网所需要的时间开销,而且能有效地控制地形网格中三角形的数目,保证了绘制的实时性。并且采用四队列的地形网格驱动,对不需要剖分的三角形队列和不需要合并的三角形队列不需要进行排序,而仅对需要剖分的三角形队列和需要合并的三角形队列中的各项进行排序,在视点变动不大时,需要剖分的三角形队列和需要合并的三角形队列的项数很少,排序的时间开销很少,提高了生成地形网格的效率,使得地形的实时漫游更加流畅,显示的画面质量更高。


下面结合附图和实施例对本发明作进一步说明。
图1是本发明方法的流程图;图2是地形三角形剖分的前5层;图3是T连接与对应三角形的强制剖分;图4是地形网格中三角形的剖分和合并;
图5是本发明的实施例。
具体实施例方式
如图1所示,本发明所提出的与视点相关的基于四队列优化的地形网格生成方法,包括地形网格及四队列的初始化,误差的重新计算及四队列更新,四队列驱动的三角形构网三个基本步骤。其中四队列是指四个地形三角形队列,它们分别是需要剖分的队列Qs和不需要剖分的队列Qns,需要合并的队列Qm和不需要合并的队列Qnm。其中队列Qs和队列Qm为排序队列,而队列Qns和队列Qnm为非排序队列。
具体流程可描述为系统首先读取原始地形数据,即DEM数据,然后使用本发明的三个步骤完成地形三角形的构成,最后完成绘制;当地形漫游时,视点改变时,重复上述过程,实现地形的漫游。
为了方便描述,先做如下约定地形数据为一个地形高度场(DEM),它定义在x-y平面,高度方向为z方向。地形高度场可形式化地表示为{z(i·Δ,j·Δ)|0≤i,j≤2n,Δ为正数常量,n为正整数}。地形采样点是指在地形高度场中具有精确高度值的点,高度值由地形高度场给出,其坐标为(i·Δ,j·Δ,z(i·Δ,j·Δ))。屏幕空间是指在投影屏幕上定义的二维欧式空间。
现具体介绍本方法的三个步骤1)地形网格及四队列的初始化首先将地形高度场在x-y平面上的四个角点所对应的四个地形采样点构成两个共享斜边的等腰直角三角形(此时这两个三角形是在第0层,它们是同一层次的,互为相邻三角形,我们称这样的在同一层次的共享斜边的两个等腰直角三角形对为菱形三角形对),即第0层中的两个三角形T和TB,根据初始视点view0计算这两个三角形在屏幕空间投影误差(以下的误差均指在屏幕空间的投影误差),如果三角形误差大于给定误差(事先确定的误差精度),将该三角形加入队列Qs(即该三角形需要被剖分),如果三角形的误差小于给定误差,则将该三角形加入队列Qns(即该三角形不需要被剖分),这就是三角形加入队列Qs或者队列Qns的划分标准。假设此时这三角形的误差均大于给定误差,那么它们都放入队列Qs。
此时队列Qs中有两个三角形T和TB,所以要使他们按照图2所示的方法进行剖分。
三角形剖分的方法如下所述如图2所示,对于三角形T(Va,Vl,Vr)(假设它所在的层次是m层,m>0),它是等腰直角三角形,Va为直角顶点,Vc为斜边VlVr的中点,VaVl为左边,VaVr为右边(我们称与三角形属于同一层次并且共享左边的三角形为左邻三角形,与某三角形属于同一层次并且共享右边的三角形为右邻三角形,与某三角形属于同一层次并且共享斜边的三角形为对邻三角形,三角形与其对邻三角形构成一个菱形三角形对。如图4中所示,TL为T的左邻三角形,TR为T的右邻三角形,TB为T的对邻三角形,T与TB构成一个菱形三角形对)。连接VaVc,此时剖分出了两个小三角形T0(Va,Vl,Vc),T1(Va,Vc,Vr),这两个三角形是三角形T的子三角形,它们的层次为m+1层,相对于T,这两个子三角形是高层次三角形。由于三角形T与三角形T0、T1为相邻层次三角形(其三角形所在层次差1),称三角形T0、T1是T的子三角形,T为三角形T0、T1的父三角形。同时误差度量应该满足低层次三角形的误差一定大于或等于高层次三角形的误差。当多个三角形分别位于不同层次但共享同一条边时,我们称此种三角形的连接方式为T连接,如图3a所示,三角形T与TB的连接方式就是T连接。
应当注意,队列Qs与队列Qns中每一项存放地形三角形,而队列Qs和队列Qnm中每一项存放地形的菱形三角形对(可参看图5)。
初始化时,如果队列Qs非空或者队列Qs与队列Qns中的三角形总数小于某一给定阈值N时,对队列Qs中误差最大的三角形进行剖分,并从队列Qs中删除该三角形,并且将由它剖分所得的子三角形根据队列Qs或者队列Qns的划分标准更新队列Qs和队列Qns。为了保证在剖分过程中不出现T连接,需要强制剖分(force split)那些构成T连接的三角形对中的低层次三角形,直到没有T连接为止(如图3b所示,这种强制剖分可能影响其他三角形,直到剖分不产生T连接为止),在此过程中将同步更新队列Qs和队列Qns。当队列Qs已空或者队列Qs与队列Qns中的三角形总数大于给定阈值N时,位于队列Qs与队列Qns中的三角形就构成了在初始视点view0下的地形初始网格。
假设此时,地形网格如图5a所示。
假设S为队列Qs与队列Qns中的三角形集合。对于S中的每个三角形Tc,考察它的父三角形Tp与Tp的对邻三角形Tpd是否都有两个子三角形,如果是,则将该菱形三角形对放入队列Qm,否则将该菱形三角形对放入队列Qnm。如图4所示,三角形T和其对邻三角形TB恰好分别有两个子三角形T0、T1,TB0、TB1,它们组成的菱形三角形对就是一个可合并的菱形三角形对。
如图5a中,三角形4和5的父三角形与三角形10和11的父三角形构成了一个可合并的菱形三角形对,图中用灰色表示,可将此菱形三角形对放入队列Qm。其他三角形的父三角形对应的菱形三角形对不是可合并的菱形三角形对,故放入队列Qnm。
初始化完成后的四队列如图5b所示。
2)误差的重新计算及四队列更新点发生一次变动后,将根据当前视点view,重新计算队列Qs与队列Qns中所有三角形及队列Qm的误差和队列Qnm中所有菱形三角形对的误差(菱形三角形对的误差为菱形三角形对中两个三角形误差的最大值),并且根据误差对四队列做如下操作对于队列Qs中所有三角形,如果三角形的误差小于给定误差,将该三角形移入队列Qns,如果三角形的误差大于给定误差,则不移动。对队列Qns中所有三角形,如果三角形的误差大于给定误差,将该三角形移入队列Qs,如果三角形的误差小于给定误差,则不移动。完成上述操作后,对队列Qs中的三角形按照误差由大到小进行排序。
如图5a所示,对前一视点的地形三角形1-21,基于当前视点重新计算误差,此时三角形14-18的误差大于给定误差,放入队列Qs,其他三角形不用变换队列。对队列Qs中的三角形按照误差从大到小进行排序,得到序列17,18,14,15,16,如图5c所示。
对于队列Qm中的菱形三角形对,如果菱形三角形对的误差大于给定误差,则将该菱形三角形对移入队列Qnm中,表示该菱形三角形对不需要合并;如果菱形三角形对的误差小于给定误差,则不移动。对于队列Qnm中的菱形三角形对,如果菱形三角形对包含的两个三角形分别有且只有两个子三角形同时满足该菱形三角形对的误差小于给定误差,则将该菱形三角形对移入队列Qm中,表示该菱形三角形对可合并;如果菱形三角形对包含的两个三角形中的任何一个三角形不满足有且只有两个子三角形或者该菱形三角形对的误差大于给定误差,则不移动。完成上述操作后,将队列Qm中的菱形三角形对按照误差由小到大进行排序。
如图5c所示,对于队列Qm中的菱形三角形对,进行更新。此例中,队列Qm中只有一个菱形三角形对,假设该菱形三角形对的误差小于给定误差,则不变化。对于队列Qnm中的菱形三角形对,由于本例中该队列中的每个菱形三角形对中的三角形均不满足有且仅有两个子三角形的要求,所以也不发生移动。此时,对队列Qm中的菱形三角形对按照误差从小到大进行排序,由于队列Qm中只有一个菱形三角形对,故队列Qm没有发生变化。
3)四队列驱动的三角形构网分别取队列Qs和Qm中的第一项(对于队列Qs第一项为第一项一个三角形,对于Qm第一项为一个菱形三角形对),根据两者的误差大小决定进行三角形的剖分或合并,当Qs中第一项的误差大于Qm第一项的误差时,对Qs中的三角形进行剖分,并且更新四队列,否则,对Qm中的三角形进行合并,并且更新四队列。当地形网格中三角形超出给定数目的三角形,或者Qs和Qm为空,或Qs中第一项的误差值小于Qm中第一项的误差值,中止操作。此时的队列Qs与队列Qns中的三角形集合就是当前视点下的地形网格。图4表示了三角形对的剖分(split)和合并(merge)关系。
如图5d,由于三角形17的误差大于菱形三角形对<(4,5),(10,11)>,对三角形进行剖分。在本例中,分别对三角形17,18,14,15进行了剖分,在剖分的同时对四队列进行了更新。后由于三角形16的误差小于菱形三角形对<(4,5),(10,11)>,对三角形进行合并,生成了三角形23,22.更新后的四队列如图5e所示,本例中三角形16没有剖分是由于剖分所得的三角形总数大于给定数目或者由于时间的限制,操作中止。
权利要求
1.一种与视点相关的基于四队列优化的地形网格生成方法,其特征在于包括以下三个步骤1).地形网格及四队列的初始化初始地形为两个共享斜边的等腰直角三角形,根据初始视点,计算这两个三角形在屏幕空间投影误差,对地形三角形进行剖分,使地形三角形的误差达到精度要求,将剖分得到的地形三角形和这些地形三角形构成的三角形对分别放入四队列,完成初始化;2).误差的重新计算及四队列更新根据变换后的视点,重新计算每个地形三角形或者地形三角形对的屏幕空间投影误差,根据误差,更新四队列;3).四队列驱动的三角形构网比较剖分队列和合并队列的第一项,根据两者的误差大小决定进行三角形的剖分或合并,在剖分或合并后更新四队列。
2.根据权利要求1所述的一种与视点相关的基于四队列优化的地形网格生成方法,其特征在于,四队列是需要剖分的三角形队列和不需要剖分三角形的队列,需要合并的三角形队列和不需要合并的三角形队列,需要剖分的三角形队列根据其误差值从大到小排列,而不需要剖分的三角形队列则无需排列,需要合并的三角形队列根据其误差值从小到大排列,而不需要合并的三角形队列则无需排列。
全文摘要
本发明公开了一种与视点相关的基于四队列优化的地形网格生成方法。包括地形网格及四队列的初始化;误差的重新计算及四队列更新;四队列驱动的三角形构网三个步骤。该方法处理原始的地形数据,能够在有限的时间能完成地形网格的生成,同时保证显示画面的质量。本发明利用了视域之间的连贯性,能有效地控制地形网格中三角形的数目,采用四队列的地形网格驱动,仅对剖分队列和合并队列进行排序,在视点变动不大时,剖分队列和合并队列的项数很少,减少了排序时间,提高了生成地形网格的效率,使得地形的实时漫游更加流畅,显示的画面质量更高。
文档编号G06T17/05GK1545070SQ20031010888
公开日2004年11月10日 申请日期2003年11月24日 优先权日2003年11月24日
发明者华炜, 陆艳青, 周栋, 鲍虎军, 炜 华 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1