一種應用在基于不規則三角網的動態地形中的地形變形處理方法
【專利摘要】本發明公開了一種應用在基于不規則三角網的動態地形中的地形變形處理方法,包括步驟一:基于特定物理模型確定地形變形區域;步驟二:向變形區域中插入新頂點;步驟三:采用逐點插入算法,實現變形區域三角網重構;步驟四:基于特定物理模型計算變形頂點高程值變化值,將變形區域中所有頂點代入特定的物理模型進行計算,得到頂點的高程變化值;步驟五:得到頂點的高程變化值之后,修改變形區域頂點的高程值,即得到變形區域中各頂點經過地形變形處理后的高程值,實現局部地形的變形。本發明采用向變形區域中插入新頂點的方法,提高了變形區域中的三角形數量,解決了以往變形區域分辨率不足的問題,增強了真實感。
【專利說明】-種應用在基于不規則三角網的動態地形中的地形變形處 理方法
【技術領域】
[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日
【發明者】李妮, 李翔, 丁瑩 申請人:北京航空航天大學