CN101950435B - 一种基于导航的交互式无遮挡三维地形图的生成方法 - Google Patents

一种基于导航的交互式无遮挡三维地形图的生成方法 Download PDF

Info

Publication number
CN101950435B
CN101950435B CN2010102941497A CN201010294149A CN101950435B CN 101950435 B CN101950435 B CN 101950435B CN 2010102941497 A CN2010102941497 A CN 2010102941497A CN 201010294149 A CN201010294149 A CN 201010294149A CN 101950435 B CN101950435 B CN 101950435B
Authority
CN
China
Prior art keywords
distortion
piecemeal
landform
sight line
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2010102941497A
Other languages
English (en)
Other versions
CN101950435A (zh
Inventor
张立强
邓浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Normal University
Original Assignee
Beijing Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Normal University filed Critical Beijing Normal University
Priority to CN2010102941497A priority Critical patent/CN101950435B/zh
Publication of CN101950435A publication Critical patent/CN101950435A/zh
Application granted granted Critical
Publication of CN101950435B publication Critical patent/CN101950435B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种基于导航的交互式无遮挡三维地形图的生成方法,它有三大步骤:步骤一:按地貌特征(如凸起的山体)对地形进行分块,设定用户感兴趣特征上的参考点;步骤二:实现从特征到视点的视线追踪,在视线追踪过程中获取并实时计算和更新变形参数;步骤三:根据变形参数,重建变形后的地形。该方法产生的无遮挡三维地形图可有效的消除复杂地形所造成的用户感兴趣特征的遮挡。它以视点、观察方向、地形以及用户感兴趣特征为输入,直接对地形模型变形生成无遮挡三维地形图。它在空间信息技术领域里具有较好的实用价值和广阔的应用前景。

Description

一种基于导航的交互式无遮挡三维地形图的生成方法
一、技术领域
本发明涉及一种基于导航的交互式无遮挡三维地形图的生成方法,属于空间信息技术领域。
二、背景技术
基于三维地形的虚拟空间环境已经在各种商业系统和科学研究等领域具有巨大的应用价值。在导航应用中,基于三维空间环境导航的平台较传统的提供二维导航地图的平台具有较大的优势。因为三维环境能使得用户更为方便判读,它几乎不需要用户具有地图的判读能力,从而使得用户能更加方便、快速的了解其当前位置、周边环境以及感兴趣区域位置等地理信息,将更多的精力投入到路径查找、驾驶或旅行决策等任务中去。
目前大都通过透视投影构造三维地形空间环境。这种投影是基于人眼和相机对客观世界的观察模式,它能在虚拟空间环境中反映客观世界。然而,这种投影却会产生地形遮挡问题:用户感兴趣区域常被较更靠近视点的物体所遮挡,在地形起伏较大的山区和建筑林立的城市中尤为普遍。尽管在三维视图系统中嵌入二维导航图能够弥补被遮挡的感兴趣区域信息,但是,会造成三维场景漫游时,用户不断的判读二维地图,并占用了有限的屏幕空间。而对于导航平台(GPS,PDA),一个重要的需求是在较小的屏幕上尽可能传达更多的地理信息。因此,在三维导航中,现有的方法难以用于交互可视化的需求,有些使全景图产生了较大的形变。
在山区复杂地形导航时,本发明实现了实时生成无遮挡三维地形图的方法,以满足导航交互可视化的要求。
三、发明内容
1、目的:本发明的目的是提供一种基于导航的交互式无遮挡三维地形图的生成方法,它克服了现有技术的不足,在复杂地形导航时,它能够实时生成无遮挡三维地形图以满足导航交互可视化的要求。
本发明所解决的问题为:给定地形T,任意处于地形之上的视点Pv,观察方向Dv以及处于T上的一组用户感兴趣地形特征F(点状、线状或面状),若在Pv处朝Dv观察所得到的视图为V0,如何快速自动生成与V0相似的视图V,尽可能使得在V中F可见?这个问题的解决,可使得用户无遮挡的实时漫游三维环境。
2、技术方案:本发明一种基于导航的交互式无遮挡三维地形图的生成方法,目前的PC机或移动式终端设备(如PDA等)能够支持该方法,该方法的具体步骤如下:
步骤一:按地貌特征对地形分块,设定用户感兴趣特征上的参考点
(1)地形的分割方法——采用Morse理论分割地形。
Morse理论是对标量场进行拓扑分析的有效工具。假定f(x,y)在区域D上连续可导,对任意点p,若f在x和y方向上导数为0,则p为关键点,即p为极大值点、极小值点或鞍点,对地形而言,分别对应于顶峰、山谷或山口。
如果函数f所有关键点处的Hessian矩阵的行列式都不为0,则f为Morse函数。定义f的一条积分线为一条处处与最陡上升(下降)梯度方向相切的曲线。积分线一般起于极大值点、D的边界或鞍点,收敛于极小值点、D的边界或鞍点。对于收敛于极小值的积分线所覆盖的区域,称作稳定单元(stable cell)。对于极大值发出的积分线所覆盖的区域,称之为不稳定单元(unstable cell)。由stable cell或unstable cell,可生成一种对标量场f对区域D的分割,称为Morse-Smale分割。
在一定的视点条件下,对视线构成遮挡的实体一般是地形的凸起部分(如山峰、山丘等)。若要消除这类遮挡,首先找出这类遮挡物。例如对一段被遮挡的道路而言(如图1),要消除其遮挡,可以先提取出其遮挡物(如图1(a)中的山丘),然后再将该山丘垂直收缩一定比例,从而消除遮挡(如图1(b))。因此,预先按地形的地貌特征提取出这些凸部分,即按凸部分对地形分块。地形可视为平面域D上的一个标量场f(x,y)=z,我们采用Morse理论对地形进行分割。
(2)分割计算——采用分水岭分割算法近似计算Morse-Smale分割。
对地形而言,可采用分水岭分割算法近似计算Morse分割。该算法的思想是,以极小值点为注水点,以此从低处向高处泛洪,来自不同注水点的洪水相遇的边界即为分水岭。它计算的是各积水盆地。为了求凸部分,以地形的相反值作为算法的输入,以极大值点为起点,从高处向低处扩展,得到地形凸部分作为地形Morse-Smale分割的近似。
在实际计算过程中,由于地形上存在高频噪声,噪声中微小的凸起都将作为注水点,所以直接对地形进行分水岭分割会造成分割过度。本发明采用数学形态学开滤波来实现。如果滤波结构元素为圆盘,将圆盘半径设定为线特征平均线段长度的1/4。
(3)参考点的确定——在当前视点处,通过视线追踪确定特征被遮挡的部分以及造成特征被遮挡的障碍物。
为了消除遮挡的变形,需要确定在当前视点处,特征被遮挡的部分以及造成特征被遮挡的障碍物,可通过视线追踪来解决;而对于用户感兴趣的点状、线状或面状特征的可视性及其遮挡物的确定,也可通过视线追踪来解决。通过指定特征上的参考点,对参考点做视线追踪,从而确定特征的可视性。
直接用视线追踪确定点状特征,而对多边形状特征只需判定其边界的可见性。对于线特征,为了令参考点具有代表性,先将线段的端点设为参考点,再根据线段长度对道路分段,以分段的端点作为控制点。在实际工作中,可将大于某阈值长度σ的道路作递归二分,以保证分段的长度不大于σ。本发明中
Figure BSA00000286269400031
其中S为地形分割后各块的平均面积。
步骤二:从特征到视点的视线追踪,获取并更新变形参数
视线追踪的目的有两个,一是确定参考点的可视性;二是在视线追踪过程中对遮挡物进行标记。在视线追踪时,如果发现参考点被遮挡,可以根据当前光线位置,产生或更新变形控制点和变形参数。如果在当前追踪位置发现了遮挡,则对遮挡处所在的块进行变形,而忽略不造成遮挡的块。为了控制各个块的变形,其变形由一组变形参数来决定,包括控制点,垂直收缩比例等。
(1)视线追踪
设参考点为P(xp,yp,zp),视点为V(xv,yv,zv),若视线上存在任意点Q(xq,yq,zq),使得zq<f(xq,yq),则参考点被遮挡,否则参考点可见。其中Q=(xp,yp,zp)+t×(xv-xp,yv-yp,zv-zp),0≤t≤1。令视线追踪从t=0开始,每进行一步,令t=t+Δt,若发现参考点被遮挡,则Q所在的分块S为遮挡物,这时根据当前Q的高度来更新S的变形参数,直到t=1结束。
对所有参考点都做上述视线追踪。追踪完成后,可获知哪些分块需变形以及相应的变形参数。本专利采用从远到近的顺序对各参考点做视线追踪,使得地形压低是从远处到近处确定的,从而避免了重复变形造成的遮挡。由于远处的参考点受到遮挡的可能性较近处参考点更大,则先基于远处参考点做光线追踪,减少了变形之后的地形遮挡数量,节省了变形的计算量。
(2)计算变形
为了消除遮挡,本发明是将造成遮挡的地形做垂直收缩,令其在视线之下。对于地形T来说,用参考点C和垂直收缩比例k两个参数定义分块的变形。
对参考点不可见的情形,主要有两种类型:(1)参考点处于地形的背面,(2)参考点被地形所遮挡。基于以上变形策略,我们消除类型(1)和类型(2)的遮挡(如图2所示)。
每个分块代表的是一个可能成为潜在障碍物的凸部分。如果视线追踪在某点发现了遮挡,该点所在的分块需要变形。对于分块的变形,存在参考点与遮挡物是否处同一分块的情况。若参考点与遮挡物在同一分块上,因为只需变形造成遮挡的区域,所以变形只针对深度小于参考点的部分,我们将该类变形称为变形I。而对于参考点与遮挡物在不同分块的情形,可以对整个分块做变形,称其为变形II。在变形I中,一个分块中可能有多个不同的变形,变形的个数等于分块内在光线追踪时发现被遮挡的参考点个数。在图3(a)中,分块I中存在参考点A和B,其中A比B远。按照从远到近对参考点做视线追踪的原则,先对A做视线追踪,若发现其被遮挡,则计算分块I中深度小于A部分gA的变形gA A=Ω[A](gA),(如图3(b))。接着从gA A(B)开始视线追踪,若发现其被遮挡,则产生分块I中深度小于B部分gB的变形
Figure BSA00000286269400041
在一个分块内,若存在n个参考点在视线追踪时被遮挡,会产生n种变形,其中的第k个参考点RK所产生的变形可表达为
Figure BSA00000286269400042
对分块内,处于变形部分上的点P(x,y,z),其变形后为
Figure BSA00000286269400043
其中,
Figure BSA00000286269400044
为深度值大于P,且深度方向上距离P最近参考点,而,
γ I ( h ) = h + k C ^ ( h - h C ^ ) - - - ( 1 )
与公式(3)类似,
k C ^ = min { ( z q - Γ I , II ( h C ^ ) ) / | h - Γ I , II ( h C ^ ) | - ϵ , 1.0 } - - - ( 2 )
其中zq为当前视线的高度,ΓI,II为变形I和变形II同时变形的结果,其值在下文中给出。
对于变形II,类似于变形I,若变形前地形上某点高程为h,其遮挡物所在分块的变形可表达为,
γII(h)=h+k2(h-hR)                (3)
其中,hR为当前视线追踪参考点的高度,
如果同时存在变形I和变形II,先令变形I维持不变,有:
对于变形I后有变形II的情形,由公式(1)和公式(3)有,
γI,II(h)=γI(h)+k2II(h)-hR)            (5)
综合变形I和变形II,分块的最终变形可表达为
Figure BSA00000286269400048
在实现时,记录变形I和变形II的参数,分别为控制点
Figure BSA00000286269400049
及其收缩比例的集合,以及参考点高程hR及其所对应的收缩比例k2。在视线追踪时被遮挡,则更新变形参数。
步骤三:根据变形参数,重建变形后的地形
对造成遮挡的分块,ΓI,II所产生的结果便是消除遮挡后的变形。本发明的变形不必加入新的顶点,因此,对多细节层次地形模型中的顶点进行变形,就可达到预期的变形结果。为了加速可视化的过程,在GPU顶点程序中实现这种顶点变形的计算。绘制顶点时,如果其所在分块需要变形,将该分块的变形参数传给GPU顶点程序。
因变形是基于分块的,为了增强分块之间的连续性,我们对多细节层次地形模型中跨分块的三角面片,采取细化(refinement)方法以平滑分块之间的边界。加入新顶点和顶点位移的过程都在GPU中完成。首先建立用于细化的三角网,并在渲染前传入顶点缓存。为了平滑细化的三角网,在顶点着色器中采用Bézier多项式计算顶点格网进行位移操作。可根据要细化的三角面片的顶点坐标和顶点法向量,在CPU中计算获得Bézier多项式,并在渲染细化的三角面片时传给顶点着色器。
对于本发明工作,只需细化和平滑跨分块的三角面片。为了平行渲染跨分块和不跨分块的三角面片,首先以非细化的方式渲染,遍历多细节层次地形模型,判断三角面片是否跨分块,如果跨分块,便存入一个数组中,否则直接渲染三角面片。遍历完成后,令顶点着色器采用细化平滑的方式进行渲染数组中的三角面片。但是,细化和平滑后的三角形会与无上述操作的三角形之间产生裂缝。我们强制细化和平滑后的三角形顶点不进行位移操作,而只对细化格网内部的顶点做位移操作,达到消除裂缝的目的。图4给出了跨分块三角面片细化和平滑前后的渲染结果。图5是截取一段场景中的原视图与本发明生成的结果视图。
3、优点及功效:本发明一种基于导航的交互式无遮挡三维地形图的生成方法,它与现有技术比,其主要优点是:在预处理时将地形分块;在导航时,通过视线追踪获得每帧的变形参数,并借助GPU着色器的可编程功能有效的构建、处理并渲染变形后地形;在保证视图可读性的前提下,交互式自动产生用户感兴趣特性不被遮挡的视图,以满足在山区导航时以全景图模式交互可视化的需要。
四、附图说明
图1.消除遮挡的例子:
图1(a)一段道路被山丘遮挡
图1(b)道路的遮挡被消除
图2.变形结果
图2(a)遮挡类型1
图2(b)遮挡类型2
图3.遮挡的两种类型:
图3(a)对参考点A,分块I和分块II都造成了类型II的遮挡
图3(b)对参考点B,分块I造成了类型I的遮挡,而分块II造成了类型II的遮挡
图4.对跨分块三角面片做细化和平滑前、后的渲染结果比较
图4(a)对跨分块三角面片做细化和平滑前的渲染结果
图4(b)对跨分块三角面片做细化和平滑后的渲染结果
图5.从地形南端向北观察时,地形在变形前、后的视图比较
图5(a)从地形南端向北观察时,地形在变形前的视图
图5(b)从地形南端向北观察时,地形在变形后的视图
图6本发明的流程框图
五、具体实施方式
请见图1、图2、图3、图4、图5、图6所示,本发明一种基于导航的交互式无遮挡三维地形图的生成方法,该方法具体步骤实施如下:
步骤一:按地貌特征对地形分块,设定用户感兴趣特征上的参考点
(1)地形的分割方法——采用Morse理论分割地形。
Morse理论是对标量场进行拓扑分析的有效工具。假定f(x,y)在区域D上连续可导,对任意点p,若f在x和y方向上导数为0,则p为关键点,即p为极大值点、极小值点或鞍点,对地形而言,分别对应于顶峰、山谷或山口。
如果函数f所有关键点处的Hessian矩阵的行列式都不为0,则f为Morse函数。定义f的一条积分线为一条处处与最陡上升(下降)梯度方向相切的曲线。积分线一般起于极大值点、D的边界或鞍点,收敛于极小值点、D的边界或鞍点。对于收敛于极小值的积分线所覆盖的区域,称作稳定单元(stable cell)。对于极大值发出的积分线所覆盖的区域,称之为不稳定单元(unstable cell)。由stable cell或unstable cell,可生成一种对标量场f对区域D的分割,称为Morse-Smale分割。
在一定的视点条件下,对视线构成遮挡的实体一般是地形的凸起部分(如山峰、山丘等)。若要消除这类遮挡,首先找出这类遮挡物。例如对一段被遮挡的道路而言(如图1),要消除其遮挡,可以先提取出其遮挡物(如图1(a)中的山丘),然后再将该山丘垂直收缩一定比例,从而消除遮挡(如图1(b))。因此,预先按地形的地貌特征提取出这些凸部分,即按凸部分对地形分块。地形可视为平面域D上的一个标量场f(x,y)=z,我们采用Morse理论对地形进行分割。
(2)分割计算——采用分水岭分割算法近似计算Morse-Smale分割。
对地形而言,可采用分水岭分割算法近似计算Morse分割。该算法的思想是,以极小值点为注水点,以此从低处向高处泛洪,来自不同注水点的洪水相遇的边界即为分水岭。它计算的是各积水盆地。为了求凸部分,以地形的相反值作为算法的输入,以极大值点为起点,从高处向低处扩展,得到地形凸部分作为地形Morse-Smale分割的近似。
在实际计算过程中,由于地形上存在高频噪声,噪声中微小的凸起都将作为注水点,所以直接对地形进行分水岭分割会造成分割过度。本发明采用数学形态学开滤波来实现。如果滤波结构元素为圆盘,将圆盘半径设定为线特征平均线段长度的1/4。
(3)参考点的确定
为了消除遮挡的变形,需要确定在当前视点处,特征被遮挡的部分以及造成特征被遮挡的障碍物,可通过视线追踪来解决;而对于用户感兴趣的点状、线状或面状特征的可视性及其遮挡物的确定,也可通过视线追踪来解决。通过指定特征上的参考点,对参考点做视线追踪,从而确定特征的可视性。
直接用视线追踪确定点状特征,而对多边形状特征只需判定其边界的可见性。对于线特征,为了令参考点具有代表性,先将线段的端点设为参考点,再根据线段长度对道路分段,以分段的端点作为控制点。在实际工作中,可将大于某阈值长度σ的道路作递归二分,以保证分段的长度不大于σ。本发明中
Figure BSA00000286269400071
其中S为地形分割后各块的平均面积。
步骤二:从特征到视点的视线追踪,并获取并更新变形参数
视线追踪的目的有两个,一是确定参考点的可视性;二是在视线追踪过程中对遮挡物进行标记。此外,在视线追踪时,如果发现参考点被遮挡,可以根据当前光线位置,产生或更新变形控制点和变形参数。如果在当前追踪位置发现了遮挡,则对遮挡处所在的块进行变形,而忽略不造成遮挡的块。为了控制各个块的变形,其变形是由一组变形参数来决定,包括控制点,垂直收缩比例等。
(1)视线追踪
设参考点为P(xp,yp,zp),视点为V(xv,yv,zv),若视线上存在任意点Q(xq,yq,zq),使得zq<f(xq,yq),则参考点被遮挡,否则参考点可见。其中Q=(xp,yp,zp)+t×(xv-xp,yv-yp,zv-zp),0≤t≤1。令视线追踪从t=0开始,每进行一步,令t=t+Δt,若发现参考点被遮挡,则Q所在的分块S为遮挡物,这时根据当前Q的高度来更新S的变形参数,直到t=1结束。
对所有参考点都做上述视线追踪。追踪完成后,可获知哪些分块需变形以及相应的变形参数。本发明采用从远到近的顺序对各参考点做视线追踪,使得地形压低是从远处到近处确定的,从而避免了重复变形造成的遮挡。由于远处的参考点受到遮挡的可能性较近处参考点更大,则先基于远处参考点做光线,最终能找出更多的遮挡,便可及早定义变形,减少了变形之后的地形遮挡数量,节省了变形的计算量。
(2)计算变形
为了消除遮挡,本发明是将造成遮挡的地形做垂直收缩,令其在视线之下(如图5)。对于地形T来说,用控制点C和垂直收缩比例k两个参数定义分块的变形,其变形γ(h)可被定义为:
γ(h)=h+k(h-hC)                (1)
假设对参考点R做视线追踪而产生的地形TR上,R的位置不变,hR为R的高程,需满足:
hR=γ(hR)=hR+k(hR-hC)            (2)
为了满足以上关系,令控制点C为参考点R。因此,需要确定垂直收缩比例k。要确定k,可根据视线来更新地形位置以消除遮挡。从参考点R引出的视线上存在某点Q(xq,yq,zq),Q所对应于地形上的点为P(xP,yP,hP),其中hP=f(xP,yP),若hP>zq,要保证R不被P遮挡,需将P变形为P’(xq,yq,γ(hP)),从而γ(hP)<zq。由公式(1)可得到,
k=min{(zq-hR)/|hP-hR|-ε,1.0}            (3)
其中,ε为一个极小的偏移量,以保证地形在视线的下方。
对参考点不可见的情形,主要有两种类型:(1)参考点处于地形的背面,(2)参考点被地形所遮挡。基于以上变形策略,我们消除类型(1)和类型(2)的遮挡(如图2所示)。
每个分块代表的是一个可能成为潜在障碍物的凸部分。如果视线追踪在某点发现了遮挡,该点所在的分块需要变形。对于分块的变形,存在参考点与遮挡物是否处同一分块的情况。若参考点与遮挡物在同一分块上,因为只需变形造成遮挡的区域,所以变形只针对深度小于参考点的部分,我们将该类变形称为变形I。而对于参考点与遮挡物在不同分块的情形,可以对整个分块做变形,称其为变形II。在变形I中,一个分块中可能有多个不同的变形,变形的个数等于分块内在光线追踪时发现被遮挡的参考点个数。在图3(a)中,分块I中存在参考点A和B,其中A比B远。按照从远到近对参考点做视线追踪的原则,先对A做视线追踪,若发现其被遮挡,则计算分块I中深度小于A部分gA的变形gA A=Ω[A](gA),(如图3(b))。接着从gA A(B)开始视线追踪,若发现其被遮挡,则产生分块I中深度小于B部分gB的变形
Figure BSA00000286269400081
在一个分块内,若存在n个参考点在视线追踪时被遮挡,会产生n种变形,其中的第k个参考点RK所产生的变形可表达为对分块内,处于变形部分上的点P(x,y,z),其变形后为
Figure BSA00000286269400083
其中,
Figure BSA00000286269400084
为深度值大于P,且深度方向上距离P最近参考点,而,
γ I ( h ) = h + k C ^ ( h - h C ^ ) - - - ( 4 )
与公式(3)类似,
k C ^ = min { ( z q - Γ I , II ( h C ^ ) ) / | h - Γ I , II ( h C ^ ) | - ϵ , 1.0 } - - - ( 5 )
其中zq为当前视线的高度,ΓI,II为变形I和变形II同时变形的结果,其值在下文中给出。
对于变形II,类似于变形I,若变形前地形上某点高程为h,其遮挡物所在分块的变形可表达为,
γII(h)=h+k2(h-hR)                            (6)
其中,hR为当前视线追踪参考点的高度,
如果同时存在变形I和变形II,先令变形I维持不变,有:
Figure BSA00000286269400091
对于变形I后有变形II的情形,由公式(4)和公式(6)有,
γI,II(h)=γI(h)+k2II(h)-hR)                (8)
综合变形I和变形II,分块的最终变形可表达为
Figure BSA00000286269400092
在实现时,记录变形I和变形II的参数,分别为控制点
Figure BSA00000286269400093
及其收缩比例
Figure BSA00000286269400094
的集合,以及参考点高程hR及其所对应的收缩比例k2。在视线追踪时被遮挡,则更新变形参数。
步骤三:根据变形参数,重建变形后的地形
对造成遮挡的分块,ΓI,II所产生的结果便是消除遮挡后的变形。本发明的变形不必加入新的顶点,因此,对多细节层次地形模型中的顶点进行变形,就可达到预期的变形结果。为了加速可视化的过程,在GPU顶点程序中实现这种顶点变形的计算。绘制顶点时,如果其所在分块需要变形,将该分块的变形参数传给GPU顶点程序。
因变形是基于分块的,为了增强分块之间的连续性,我们对多细节层次地形模型中跨分块的三角面片,采取细化方法以平滑分块之间的边界,新顶点插入和顶点位移的过程都在GPU中完成。首先建立用于细化的三角网,并在渲染前传入顶点缓存,在顶点着色器中采用Bézier多项式计算顶点格网进行位移操作。可根据要细化的三角面片的顶点坐标和顶点法向量,在CPU中计算获得Bézier多项式,并在渲染细化的三角面片时传给顶点着色器。为了平行渲染跨分块和不跨分块的三角面片,本发明先以非细化的方式渲染,遍历多细节层次地形模型,判断三角面片是否跨分块,如果跨分块,便存入一个数组中,否则直接渲染三角面片。遍历完成后,令顶点着色器采用细化平滑的方式进行渲染数组中的三角面片。但是,细化和平滑后的三角形会与无上述操作的三角形之间产生裂缝。我们强制细化和平滑后的三角形顶点不进行位移操作,而只对细化格网内部的顶点做位移操作,达到消除裂缝的目的。图4给出了跨分块三角面片细化和平滑前后的渲染结果。图5是截取一段场景中的原视图与本发明生成的结果视图。图6为本发明的流程框图。

Claims (1)

1.一种基于导航的交互式无遮挡三维地形图的生成方法,其特征在于:该方法具体步骤如下:
步骤一:按地貌特征对地形分块,设定用户感兴趣特征上的参考点
(1)地形的分割方法——采用Morse理论分割地形
Morse理论是对标量场进行拓扑分析的有效工具,设定f(x,y)在区域D上连续可导,对任意点p,若f在x和y方向上导数为0,则p为关键点,即p为极大值点、极小值点或鞍点,对地形而言,分别对应于顶峰、山谷、山口;
如果函数f所有关键点处的Hessian矩阵的行列式都不为0,则f为Morse函数;定义f的一条积分线为一条处处与最陡上升或下降梯度方向相切的曲线,积分线起于极大值点、D的边界或鞍点,收敛于极小值点、D的边界或鞍点;对于收敛于极小值的积分线所覆盖的区域,称作稳定单元即stable cell;对于极大值发出的积分线所覆盖的区域,称之为不稳定单元即unstable cell;由stable cell或unstable cell,生成一种对标量场f的区域D的分割,称为Morse-Smale分割;
在一定的视点条件下,对视线构成遮挡的实体是地形的凸起部分即山峰、山丘,若要消除这类遮挡,首先找出这类遮挡物;对一段被遮挡的道路而言,要消除其遮挡,先提取出其遮挡物,然后再将该山丘垂直收缩一定比例,从而消除遮挡;因此,预先按地形的地貌特征提取出这些凸部分,即按凸部分对地形分块,地形视为平面域D上的一个标量场f(x,y)=z,采用Morse理论对地形进行分割;
(2)分割计算——采用分水岭分割算法近似计算Morse-Smale分割
对地形而言,采用分水岭分割算法近似计算Morse分割;该算法的思想是,以极小值点为注水点,以此从低处向高处泛洪,来自不同注水点的洪水相遇的边界即为分水岭,它计算的是各积水盆地;为了求凸部分,以地形的相反值作为算法的输入,以极大值点为起点,从高处向低处扩展,得到地形凸部分作为地形Morse-Smale分割的近似;
在实际计算过程中,由于地形上存在高频噪声,噪声中微小的凸起都将作为注水点,所以直接对地形进行分水岭分割会造成分割过度;这里采用数学形态学开滤波来实现;如果滤波结构元素为圆盘,将圆盘半径设定为线特征平均线段长度的1/4;
(3)参考点的确定
为了消除遮挡的变形,需要确定在当前视点处,特征被遮挡的部分以及造成特征被遮挡的障碍物,通过视线追踪来解决;而对于用户感兴趣的点状、线状、面状特征的可视性及其遮挡物的确定,通过视线追踪来解决;通过指定特征上的参考点,对参考点做视线追踪,从而确定特征的可视性;
直接用视线追踪确定点状特征,而对多边形状特征只需判定其边界的可见性;对于线特征,为了令参考点具有代表性,先将线段的端点设为参考点,再根据线段长度对道路分段,以分段的端点作为控制点;在实际工作中,将大于某阈值长度σ的道路作递归二分,以保证分段的长度不大于σ;而
Figure FSB00000741923800021
其中S为地形分割后各块的平均面积;
步骤二:从特征到视点的视线追踪,获取并更新变形参数
视线追踪的目的有两个,一是确定参考点的可视性;二是在视线追踪过程中对遮挡物进行标记;此外,在视线追踪时,如果发现参考点被遮挡,根据当前光线位置,产生、更新变形控制点和变形参数;如果在当前追踪位置发现了遮挡,则对遮挡处所在的块进行变形,而忽略不造成遮挡的块;为了控制各个块的变形,其变形是由一组变形参数来决定,包括控制点,垂直收缩比例;
(1)视线追踪
设参考点为P(xp,yp,zp),视点为V(xv,yv,zv),若视线上存在任意点Q(xq,yq,zq),使得zq<f(xq,yq),则参考点被遮挡,否则参考点可见;其中Q=(xp,yp,zp)+t×(xv-xp,yv-yp,zv-zp),0≤t≤1;令视线追踪从t=0开始,每进行一步,令t=t+Δt,若发现参考点被遮挡,则Q所在的分块S为遮挡物,这时根据当前Q的高度来更新S的变形参数,直到t=1结束;
对所有参考点都做上述视线追踪,追踪完成后,获知哪些分块需变形以及相应的变形参数;这里采用从远到近的顺序对各参考点做视线追踪,使得地形压低是从远处到近处确定的,从而避免了重复变形造成的遮挡;由于远处的参考点受到遮挡的可能性较近处参考点更大,则先基于远处参考点做光线,最终能找出更多的遮挡,便及早定义变形,减少了变形之后的地形遮挡数量,节省了变形的计算量;
(2)计算变形
为了消除遮挡,将造成遮挡的地形做垂直收缩,令其在视线之下;对于地形T来说,用控制点C和垂直收缩比例k两个参数定义分块的变形,其变形γ(h)被定义为:
γ(h)=h+k(h-hC)    (1)
假设对参考点R做视线追踪而产生的地形TR上,R的位置不变,hR为R的高程,需满足:
hR=γ(hR)=hR+k(hR-hC)    (2)
为了满足以上关系,令控制点C为参考点R;因此,需要确定垂直收缩比例k;要确定k,根据视线来更新地形位置以消除遮挡;从参考点R引出的视线上存在某点Q(xq,yq,zq),Q所对应于地形上的点为P(xP,yP,hP),其中hP=f(xP,yP),若hP>zq,要保证R不被P遮挡,需将P变形为P’(xq,yq,γ(hP)),从而γ(hP)<zq;由公式(1)得到,
k=min{(zq-hR)/|hP-hR|-ε,1.0}    (3)
其中,ε为一个极小的偏移量,以保证地形在视线的下方;
对参考点不可见的情形,有两种类型:(1)参考点处于地形的背面,(2)参考点被地形所遮挡;基于以上变形策略,消除类型(1)和类型(2)的遮挡;
每个分块代表的是一个成为潜在障碍物的凸部分,如果视线追踪在某点发现了遮挡,该点所在的分块需要变形;对于分块的变形,存在参考点与遮挡物是否处同一分块的情况;若参考点与遮挡物在同一分块上,因为只需变形造成遮挡的区域,所以变形只针对深度小于参考点的部分,将该类变形称为变形I;而对于参考点与遮挡物在不同分块的情形,对整个分块做变形,称其为变形II;在变形I中,一个分块中有多个不同的变形,变形的个数等于分块内在光线追踪时发现被遮挡的参考点个数;分块I中存在参考点A和B,其中A比B远;按照从远到近对参考点做视线追踪的原则,先对A做视线追踪,若发现其被遮挡,则计算分块I中深度小于A部分gA的变形gA A=Ω[A](gA),接着从gA A(B)开始视线追踪,若发现其被遮挡,则产生分块I中深度小于B部分gB的变形
Figure FSB00000741923800031
在一个分块内,若存在n个参考点在视线追踪时被遮挡,会产生n种变形,其中的第k个参考点RK所产生的变形表达为
Figure FSB00000741923800032
对分块内,处于变形部分上的点P(x,y,z),其变形后为
Figure FSB00000741923800033
其中,
Figure FSB00000741923800034
为深度值大于P,且深度方向上距离P最近参考点,而,
γ I ( h ) = h + k C ^ ( h - h C ^ ) - - - ( 4 )
与公式(3)类似,
k C ^ = min { ( z q - Γ I , II ( h C ^ ) ) / | h - Γ I , II ( h C ^ ) | - ϵ , 1.0 } - - - ( 5 )
其中zq为当前视线的高度,ΓI,II为变形I和变形II同时变形的结果,其值在下面给出;
对于变形II,类似于变形I,若变形前地形上某点高程为h,其遮挡物所在分块的变形表达为,
γII(h)=h+k2(h-hR)    (6)
其中,hR为当前视线追踪参考点的高度,
如果同时存在变形I和变形II,先令变形I维持不变,有:
对于变形I后有变形II的情形,由公式(4)和公式(6)有,
γI,II(h)=γI(h)+k2II(h)-hR)    (8)
综合变形I和变形II,分块的最终变形表达为
在实现时,记录变形I和变形II的参数,分别为控制点
Figure FSB00000741923800042
及其收缩比例
Figure FSB00000741923800043
的集合,以及参考点高程hR及其所对应的收缩比例k2;在视线追踪时被遮挡,则更新变形参数;
步骤三:根据变形参数,重建变形后的地形
对造成遮挡的分块,ΓI,II所产生的结果便是消除遮挡后的变形;变形不必加入新的顶点,因此,对多细节层次地形模型中的顶点进行变形,达到预期的变形结果;为了加速可视化的过程,在GPU顶点程序中实现这种顶点变形的计算;绘制顶点时,如果其所在分块需要变形,将该分块的变形参数传给GPU顶点程序;
因变形是基于分块的,为了增强分块之间的连续性,对多细节层次地形模型中跨分块的三角面片,采取细化方法以平滑分块之间的边界,加入新顶点和顶点位移的过程都在GPU中完成;首先建立用于细化的三角网,并在渲染前传入顶点缓存;为了平滑细化的三角网,在顶点着色器中采用Bézier多项式计算顶点格网进行位移操作;根据要细化的三角面片的顶点坐标和顶点法向量,在CPU中计算获得Bézier多项式,并在渲染细化的三角面片时传给顶点着色器;
为了平行渲染跨分块和不跨分块的三角面片,首先以非细化的方式渲染,遍历多细节层次地形模型,判断三角面片是否跨分块,如果跨分块,便存入一个数组中,否则直接渲染三角面片;遍历完成后,令顶点着色器采用细化平滑的方式进行渲染数组中的三角面片;但是,细化和平滑后的三角形会与无上述操作的三角形之间产生裂缝,强制细化和平滑后的三角形顶点不进行位移操作,而只对细化格网内部的顶点做位移操作,达到消除裂缝的目的。
CN2010102941497A 2010-09-27 2010-09-27 一种基于导航的交互式无遮挡三维地形图的生成方法 Expired - Fee Related CN101950435B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102941497A CN101950435B (zh) 2010-09-27 2010-09-27 一种基于导航的交互式无遮挡三维地形图的生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102941497A CN101950435B (zh) 2010-09-27 2010-09-27 一种基于导航的交互式无遮挡三维地形图的生成方法

Publications (2)

Publication Number Publication Date
CN101950435A CN101950435A (zh) 2011-01-19
CN101950435B true CN101950435B (zh) 2012-05-30

Family

ID=43453922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102941497A Expired - Fee Related CN101950435B (zh) 2010-09-27 2010-09-27 一种基于导航的交互式无遮挡三维地形图的生成方法

Country Status (1)

Country Link
CN (1) CN101950435B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193998B (zh) * 2011-05-05 2012-11-14 河南理工大学 一种含边拓扑信息的不规则三角网弧扫式构建方案
CN102565812B (zh) * 2012-01-19 2013-04-24 西安科技大学 一种gps rtk中测量隐蔽点点位坐标的方法
CN103310489B (zh) * 2013-06-24 2016-01-20 中南大学 一种基于动态深度层次结构的三维模型交互方法
CN104504760B (zh) * 2014-12-09 2018-06-12 北京畅游天下网络技术有限公司 实时更新三维图像的方法和系统
CN108230378B (zh) * 2018-01-29 2020-03-20 北京航空航天大学 一种基于光线追踪的计算全息遮挡处理算法
CN109925716B (zh) * 2019-04-12 2020-04-21 网易(杭州)网络有限公司 地形切割的顶点重建方法、装置、处理器及终端
CN111508054B (zh) * 2020-04-14 2023-08-08 网易(杭州)网络有限公司 地形构建方法、装置及设备
CN112365506A (zh) * 2020-10-16 2021-02-12 安徽精益测绘有限公司 一种倾斜摄影测量用航摄相片自动化纠正与拼接作业方法
CN113256798B (zh) * 2021-06-04 2023-05-05 猫岐智能科技(上海)有限公司 光幕遮挡区域生成系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6164134A (en) * 1999-01-29 2000-12-26 Hughes Electronics Corporation Balanced vibratory gyroscope and amplitude control for same
JP4391622B2 (ja) * 1999-06-10 2009-12-24 三菱スペース・ソフトウエア株式会社 衛星画像からの海面抽出処理方法
JP2005183488A (ja) * 2003-12-16 2005-07-07 Mitsumi Electric Co Ltd 高周波モジュール
CN100547594C (zh) * 2007-06-27 2009-10-07 中国科学院遥感应用研究所 一种数字地球原型系统
CN101549498B (zh) * 2009-04-23 2010-12-29 上海交通大学 智能帮扶式助行机器人的自主跟踪与导航系统

Also Published As

Publication number Publication date
CN101950435A (zh) 2011-01-19

Similar Documents

Publication Publication Date Title
CN101950435B (zh) 一种基于导航的交互式无遮挡三维地形图的生成方法
Smelik et al. Integrating procedural generation and manual editing of virtual worlds
CN106846466A (zh) 一种智慧城市三维可视化展示系统
De Carli et al. A survey of procedural content generation techniques suitable to game development
Wang Landscape design of coastal area based on virtual reality technology and intelligent algorithm
CN105574933B (zh) 物体全方位轮廓精确绘制方法
CN107220372B (zh) 一种三维地图线要素注记自动放置方法
CN109003322B (zh) 一种动力定位船舶海上作业的三维海浪仿真优化方法
CN106934111A (zh) 一种基于地形数据的工程三维实体建模方法及其建模装置
CN107767453A (zh) 一种基于规则约束的建筑物lidar点云重构优化方法
CN109115297A (zh) 一种无人机工程填方量和挖方量的测量方法
CN102254350A (zh) 一种三维模型的匹配方法
Suleiman et al. 3D urban visibility analysis with vector GIS data
CN104318605A (zh) 矢量实线与三维地形的并行贴合渲染方法
Becher et al. Feature-based volumetric terrain generation
CN110411422A (zh) 基于bim的施工便道的规划方法
CN103218489A (zh) 一种基于视频样本的模拟车辆个性化驾驶特性的方法
CN109461197B (zh) 一种基于球面uv和重投影的云实时绘制优化方法
CN106096129B (zh) 一种基于山地汇水计算的山脚水面规模分析方法
CN109741451A (zh) 一种基于地形图构建三维地表bim模型的系统
Ruzínoor et al. 3D terrain visualisation for GIS: A comparison of different techniques
CN109727255A (zh) 一种建筑物三维模型分割方法
Williams et al. A time-line approach for the generation of simulated settlements
Teoh Riverland: An efficient procedural modeling system for creating realistic-looking terrains
CN115601486A (zh) 虚拟河流生成方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120530

Termination date: 20130927