一种应用在基于不规则三角网的动态地形中的地形变形处理方法

文档序号:6634366阅读:289来源:国知局
一种应用在基于不规则三角网的动态地形中的地形变形处理方法
【专利摘要】本发明公开了一种应用在基于不规则三角网的动态地形中的地形变形处理方法,包括步骤一:基于特定物理模型确定地形变形区域;步骤二:向变形区域中插入新顶点;步骤三:采用逐点插入算法,实现变形区域三角网重构;步骤四:基于特定物理模型计算变形顶点高程值变化值,将变形区域中所有顶点代入特定的物理模型进行计算,得到顶点的高程变化值;步骤五:得到顶点的高程变化值之后,修改变形区域顶点的高程值,即得到变形区域中各顶点经过地形变形处理后的高程值,实现局部地形的变形。本发明采用向变形区域中插入新顶点的方法,提高了变形区域中的三角形数量,解决了以往变形区域分辨率不足的问题,增强了真实感。
【专利说明】-种应用在基于不规则三角网的动态地形中的地形变形处 理方法

【技术领域】
[0001] 本发明涉及一种应用在基于不规则三角网的动态地形中的地形变形处理方法,属 于虚拟现实、计算机仿真【技术领域】。

【背景技术】
[0002] 动态地形是指在绘制地形时,根据用户的操作或需要,通过仿真实体(如车辆、炮 弹、行人等)与地形的交互而实时修改地形的几何属性或非几何属性。动态地形绘制属于 实时绘制领域的问题,所以动态地形的绘制必然要用到实时绘制的相关技术,解决实时绘 制所要求共性问题。但是动态地形有其特殊性,地形需要根据用户的操作或仿真实体与地 形的交互而发生物理上实时的更新,不同于实时绘制的交互,这种改变不仅发生在绘制阶 段,而且系统在底层所维护的地形数据结构也要基于特定的物理模型而实时改变。
[0003]地形的生成主要是基于规则三角网和不规则三角网:(1)规则三角网方法,该方 法的优点是易于实现快速的地形结构遍历算法,但它不考虑地形模型的复杂程度变化,一 律采用均匀密度的三角形表示,这种方法的最大缺点是,在地形结构简单的地方,资源出现 浪费,而结构复杂的地方,细致程度又不够,即无法做到资源的优化配置。(2)不规则三角网 方法,该方法能以较少的不规则三角形逼近几何高度场,分辨率可调,提高了渲染速度。由 于规则三角网具有快速、简单等特点,所以大多数动态地形都选择基于规则三角网生成,不 规则三角网在动态地形中的应用较为少见。
[0004]地形变形处理是动态地形实时绘制需要完成的重要内容,这主要包括地形数据的 实时更改及由于变形而引起的相关问题处理。其中,地形数据的更改主要包括对变形区高 程值的修改;而由地形变形而引起的问题主要包括地形的分辨率扩展和变形区域的连续性 保持两个方面。传统的基于不规则三角网的动态地形的地形变形处理方法是基于特定的物 理模型直接对地形数据进行查询和修改。如果应用在大规模地形中,由于没有对查询方法 进行优化,对变形区域的分辨率也没有扩展,那么动态地形的实时性和真实感都不能满足 要求。


【发明内容】

[0005]本发明的目的是为了解决基于不规则三角网的动态地形的实时性和真实感问题, 提出了一种应用在基于不规则三角网的动态地形中的地形变形处理方法。
[0006]本发明的一种应用在基于不规则三角网的动态地形中的地形变形处理方法,包括 以下几个步骤:
[0007] 步骤一:根据需要处理变形对象的形变,选定其对应的特定物理模型,基于特定物 理模型确定地形变形区域;
[0008] 步骤二:向变形区域中插入新顶点;
[0009] 步骤三:采用逐点插入算法,实现变形区域三角网重构;
[0010] 步骤四:基于特定物理模型计算变形顶点高程值变化值,将变形区域中所有顶点 代入特定的物理模型进行计算,得到顶点的高程变化值;
[0011] 步骤五:得到顶点的高程变化值之后,修改变形区域顶点的高程值,即得到变形区 域中各顶点经过地形变形处理后的高程值,使整个变形区域呈现出地形变形的效果,实现 局部地形的变形。
[0012] 本发明的优点在于:
[0013] (1)采用向变形区域中插入新顶点的方法,提高了变形区域中的三角形数量,解决 了以往变形区域分辨率不足的问题,增强了真实感;
[0014] (2)采用格网定位和直线查找相结合的方法进行新顶点所在三角形查找,大幅提 高了查找的效率,改进了动态地形的实时性;
[0015] (3)逐点插入算法实现变形区域三角网重构,快速实现了变形区域的连续性。

【专利附图】

【附图说明】
[0016] 图1是本发明中基于不规则三角网的动态地形中的地形变形处理方法的流程图;
[0017] 图2是本发明中变形区域三角网重构的流程图;
[0018] 图3是本发明中格网定位法的示意图;
[0019] 图4是本发明中直线查找法的示意图;
[0020] 图5是本发明中顶点在三角形中位置的示意图
[0021] 图6是本发明中顶点在三角形边上的示意图
[0022] 图7是本发明中局部优化算法的示意图。

【具体实施方式】
[0023] 下面将结合附图和实施例对本发明作进一步的详细说明。
[0024] 本发明采用向变形区域中插入新顶点的方法,提高了变形区域中的三角形数量, 解决了以往变形区域分辨率不足的问题,增强了真实感;采用格网定位和直线查找相结合 的方法进行新顶点所在三角形查找,大幅提高了查找的效率,改进了动态地形的实时性;逐 点插入算法实现变形区域三角网重构,快速实现了变形区域的连续性。
[0025] 本发明的一种应用在基于不规则三角网的动态地形中的地形变形处理方法,流程 如图1所示,包括以下几个步骤:
[0026] 步骤一:根据需要处理变形对象的形变,选定其对应的特定物理模型(比如炸弹 引起的弹坑形变是基于弹坑模型计算形变,汽车压过草地出现的车辙是基于车辙的物理模 型计算形变),基于特定物理模型确定地形变形区域。
[0027] 动态地形在仿真过程中对地形地进行修改,使局部地形发生变形,呈现新的地形 地貌,例如作战过程中炮弹击中地面产生的弹坑,车辆驶过松软的土地形成的车辙,自然或 人为原因形成的山地的滑坡坍塌、桥梁坍塌、道路阻断等现象,这些地形变形都需要依赖于 其特定的物理模型。在已知地形变形位置后,通过对物理模型的计算可以确定地形发生变 形的精确区域。
[0028]步骤二:向变形区域中插入新顶点。
[0029] 由于变形区域发生了地形变形,如果用原有地形的分辨率去描述,会显得很粗糙, 不够真实,所以需要向变形区域中插入新的顶点,完成变形区域分辨率的扩展。具体插入顶 点的数量及分布密度,可根据实际的仿真效果来确定调整。(确定了变形区域,即确定了顶 点的插入范围,插入的方法有很多种,一般采用随机插入,插入的数量当然是越多,效果越 细腻,但是数量过多又会影响程序的实时性,这之间需要反复调试选择一个最好的数值,所 以顶点的数量根据实际的仿真效果来确定调整。)
[0030] 步骤三:采用逐点插入算法,实现变形区域三角网重构;
[0031] 流程如图2所示,具体包括:
[0032] 步骤3. 1 :从变形区域新插入的点集中取任意一顶点。
[0033] 步骤3. 2:采用格网定位和直线查找相结合的方法进行该顶点所在三角形查找, 具体为:
[0034] (3. 2a)格网定位法,如图3所示:
[0035] 当在已构三角网中插入点P时,以往一般是事先对离散点按X坐标排序,这样相邻 点所在三角形也相对较近,但当点的y坐标差异较大时,虽然两点排序后相邻,但它们所在 三角形却相距很远,这时定位点所在三角形的效率是很低的。采用格网定位法可大幅提高 定位到点P所在三角形的效率。
[0036] 首先在对离散点处理后可得到所有离散点X, y坐标的最大最小值X_、Xnin、y_、 ymin,于是可以构建一个格网把所有离散点包含在内。由于每个格子用一个整型数据表示, 所以格子的数量不超过离散点数量,但如果格子数量太少,每个格子内会有大量三角形,从 而点在该格子内定位三角形即使按照直线查找仍然要查找大量三角形,没起到快速定位的 作用,经过反复试验,格子数为离散点数的十分之一左右比较合适。假设离散点基本均匀分 布,所以使行数和列数分别与y坐标和X坐标的跨度成正比。则

【权利要求】
1. 一种应用在基于不规则三角网的动态地形中的地形变形处理方法,包括以下几个步 骤: 步骤一:根据需要处理变形对象的形变,选定其对应的特定物理模型,基于特定物理模 型确定地形变形区域; 步骤二:向变形区域中插入新顶点; 插入新顶点的数量及分布密度,根据实际仿真效果确定调整; 步骤三:采用逐点插入算法,实现变形区域三角网重构; 具体包括: 步骤3. 1 :从变形区域新插入的点集中取任意一顶点; 步骤3.2 :采用格网定位和直线查找相结合的方法进行该顶点所在三角形查找,具体 为: (3. 2a)格网定位法: 首先,进行离散点处理,得到所有离散点X,y坐标的最大最小值1_、1_、7_、7_,构建 一个格网把所有离散点包含在内,格子数为离散点数的十分之一;假设离散点均匀分布,行 数和列数分别与y坐标和X坐标的跨度成正比,则:
式中: ^一离散点区域横向宽度 Iy-离散点区域坚向宽度 Np-离散点数量 N-格子数 点P所在格网的行和列位置则由其坐标值判断:
式中 X,y-离散点的横纵坐标 xmin,ymin-所有离散点中横、纵坐标最小值 lx,Iy-离散点区域横向,坚向宽度 Nm-格网行数和列数 每插入一个点时,计算出这个点对应在格网中的位置(row,col),如果该格子是第一次 插入点,则没有记录三角形编号,任取一三角形或在点排序的情况下从最后一个三角形开 始查找;否则从该格子所记录的三角形编号开始查找,定位点P所在三角形; (3. 2b)直线查找法: 假设插入点W时,从三角形ABC开始查找,点Pi所在三角形为Ai Ci,判断点 Pi分别是在每条边的左侧还是右侧,若左侧用+1表示,右侧用-1表示,在直线上用0表 示,通过±1或0的数来表示点相对某三角形的位置;若知道三个值全为+1,则找到点 所在三角形;若只有一个-1,则沿着这条边查找;当有两个-1时,设三角形ABC的重心 为P,设点P相对BC和CA边的位置都为-1,则判断C点相对直线PP'的位置,若为左侧 +1,则沿PP'右侧BC方向查找;若为右侧-1,则沿PP'左侧AC方向查找;若为0,沿AC或 BC方向查找均可; 步骤3. 3 :在找到顶点所在三角形后,采用面积判断法判断顶点是否在三角形内或者 在三角形边上;假设三角形abc、三角形abv、三角形bcv、三角形acv的面积分别为S、S1、 S2、S3,做如下判断: 如果Sl = 0,且S1+S2+S3 = S,则说明点V在边ab上; 如果S2 = 0,且S1+S2+S3 = S,则说明点V在边be上; 如果S3 = 0,且S1+S2+S3 = S,则说明点V在边ac上; 如果Sl关0, S2关0, S3关0,且S1+S2+S3 = S,则说明点V在三角形abc内部; 步骤3. 4 :调整三角形拓扑结构;在确定插入顶点的具体位置后,按下面两种情况进行 修改: (1) 顶点在三角形内,删除原三角形abc,增加点V,与顶点a、b、c形成3个新的三角 形; (2) 顶点在三角形的边上,删除边所对应的两个三角形即三角形abc、三角形bed,增加 点V与顶点a、b、c、d形成4个三角形:即三角形abv、三角形acv、三角形bdv、三角形dev ; 步骤3. 5 :使用局部优化算法,逐个更新所有生成的三角形,包括以下步骤: (1)将两个具有共同边的三角形合成一个多边形; ⑵以最大空圆准则作检查,观其第四个顶点是否在三角形的外接圆之内; (3) 如果在,修正对角线即将对角线对调,即完成局部优化过程的处理; 步骤3. 6 :重复步骤3. 1至步骤3. 6直到取完变形区域新插入点集中的所有顶点; 步骤四:基于特定物理模型计算变形顶点高程值变化值,将变形区域中所有顶点代入 特定的物理模型进行计算,得到顶点的高程变化值; 步骤五:得到顶点的高程变化值之后,修改变形区域顶点的高程值,即得到变形区域中 各顶点经过地形变形处理后的高程值,使整个变形区域呈现出地形变形的效果,实现局部 地形的变形。
【文档编号】G06T19/20GK104376601SQ201410649429
【公开日】2015年2月25日 申请日期:2014年11月14日 优先权日:2014年11月14日
【发明者】李妮, 李翔, 丁莹 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1