李朝奎,方 軍,方 文,卜 璞
(1. 湖南科技大學地理空間信息技術國家地方聯合工程實驗室,湖南 湘潭 411201; 2. 湖南科技大學地理空間信息湖南省工程實驗室,湖南 湘潭 411201)
集群環境下基于視點移動的三維城市模型快速顯示方法
李朝奎1,2,方 軍1,2,方 文1,2,卜 璞1,2
(1. 湖南科技大學地理空間信息技術國家地方聯合工程實驗室,湖南 湘潭 411201; 2. 湖南科技大學地理空間信息湖南省工程實驗室,湖南 湘潭 411201)
大范圍三維城市模型數據在現有的單機運行環境下,因數據量大導致運行速度慢、計算耗時等難題。為解決該問題,本文結合集群并行運算,提出了一種基于視點移動規則的大范圍三維城市模型的快速顯示方法。采用靜態細節層次簡化算法將三維城市模型簡化為4個分辨率層次,根據視點移動規律,利用距離和偏心率選擇不同層次的細節層次模型,逐級加載不同分辨率層次模型,并在集群系統中并行顯示,從而有效地解決了大范圍三維城市模型加載顯示過慢、場景效果跳躍等問題,實現了對大范圍三維城市模型的快速可視化。試驗結果表明:隨視點變化分層逐級加載不同等級LOD模型,采用PC集群并行繪制,可以快速有效地對大范圍三維城市模型進行渲染處理,在兼顧效率的同時,并行地顯示模型的細節,具有良好的可視化效果,對智慧城市的建設具有重要的指導意義。
集群環境;視點移動;三維城市模型;快速顯示
隨著智慧城市和虛擬現實技術的快速發展,三維城市模型(three dimension city model,3DCM)在導航、交通及城市空間規劃等多方面起著至關重要的作用,它具有多種細節層次的三維幾何表達,并提供逼真的材質和紋理特征及目標的屬性信息。但由于目前三維城市模型數據量大、單機運算處理時間長、顯示繪制壓力大,單機繪制和靜態算法已無法滿足日益增長的3DCM數據對其可視化的要求。因此,迫切需要研究大范圍3DCM的快速并行顯示方法。
Clark指出多細節層次模型(level of details,LOD)是解決大范圍3DCM的高精度表達困難最重要的方法之一[1]。目前,許多學者針對LOD簡化進行了研究,簡化方法主要有頂點聚類法、幾何元素刪除法、頂點采樣法、小波分解法、聚類算法等[2-4],通過這些方法可進行模型簡化并實現三維模型的顯示。但上述方法的共同缺陷是丟失了一定量的精細信息,對于大范圍三維模型數據顯示速度較慢,不利于三維場景的快速顯示與可視化決策。
針對這些問題,本文通過構建集群并行顯示系統,對3DCM進行多分辨處理,生成多層次細節模型(LOD),分析視點變化規律,并根據距離和偏心率選擇不同層次的三維模型,既能兼顧模型的顯示速度,又可表達較為完整的精細信息,實現了大范圍3DCM的集群并行快速顯示。
1.1 構建并行集群
集群就是通過高速網絡連接多臺相互獨立的計算機(節點),使多臺計算機作為一個整體向用戶提供網絡資源和服務。集群中各節點除了可以作為單一計算機供用戶使用,還可以協同作為一個整體使用。集群是一個系統,用戶無須了解集群系統內部的節點和構造,且集群系統的管理員可以隨意增加和刪改集群系統的節點。集群具有高可擴展性、高可用性、高性能、高性價比等特點[5]。集群系統結構[6]如圖1所示。

圖1 集群系統結構
在集群系統中,選用一臺計算機作為主節點整體協調控制多臺子節點計算機,每臺計算機控制一個顯示屏。主節點負責將數據劃分至各個子節點,協調管理各個子節點的數據量大小和處理進度,由各個子節點對分配到的數據進行處理渲染并最終顯示。通過集群并行計算,可以有效地解決單一計算機硬件性能有限、計算能力不足等問題,實現大范圍3DCM快速處理顯示任務。
1.2 多分辨率三維模型
LOD是一種為了提高繪制速度,適度放棄精度的簡化方法,根據人眼分辨率的感知原理和視點的移動規律,對不同的視距采用不同精細程度的物體細節層次,達到漫游幀速流暢的目的。在構建模型的細節層次時,要綜合考慮細節層次與數據量之間的關系[7]。細節層次太多,數據量相應變大,不利于存儲管理;而細節層次太少,在場景切換時畫面呈跳躍感,影響場景的連續性。
目前常用的建立LOD的方法主要有靜態LOD和動態LOD兩種[8-10]。靜態LOD,即預先生成幾個層次的細節模型,在渲染時根據算法確定所需的分辨率及細節層次,這種方法繪制速度快,但需要存儲多個細節層次模型,占用過多的存儲空間,在模型切換的時畫面會有跳躍感;動態LOD,即通過模型簡化算法或迭代運算生成任意多個連續的細節層次模型,從而得到相鄰的細節層次模型,模型切換時能夠保持很好的視覺平滑效果,但是算法復雜,計算量大,影響顯示速度,且目前并不能實現完全動態模型簡化。
雖然靜態LOD簡化需要占用較多的存儲空間,但在目前存儲空間足夠的情況下,可通過預先生成多層次細節模型,在渲染顯示時不需要再通過算法實現模型層次的構建,進而提高了運行速度[11]。在大范圍3DCM渲染顯示時,不需要顯示全部的細節信息,無需將所有分辨率下的模型全部加載顯示,可以根據視點移動規律對模型進行動態調度。
1.2.1 三維模型LOD簡化
3DCM主要由許多個三角面片組成,因此模型的簡化可以轉換為對三角面片的簡化。采用一種改進的基于邊折疊簡化算法,依據小波曲面細分原理,并對邊折疊生成的新頂點提取矯正系數,對新頂點進行修正[7]。圖2為邊折疊算法示意圖。

圖2 邊折疊算法示意圖
假設新生成頂點為X0(x0,y0,z0),頂點實際坐標為X1(x1,y1,z1),則矯正系數J就是X0與X1之差,即
J=X0(x0,y0,z0)-X1(x1,y1,z1)
(1)
根據上述算法,并參照《城市三維建模技術規范》,將三維模型簡化為4個LOD層次,并進行存儲。表1為LOD細節層次分級。

表1 LOD細節層次分級
1.2.2 基于視點和距離選擇的LOD層次選擇
在進行三維場景繪制時,視野的變化范圍隨著人眼視點的移動而移動。雖然視點的變化是隨機的,但是整體來說包含6種變化趨勢:沿著X軸的正、反方向的移動(沿X軸前進或后退),沿著Y軸的正、反方向的移動(沿Y軸前進或后退),沿著Z軸的正、反方向的移動(沿Z軸前進或后退)[12-13]。將其投影至二維平面變化為向上、向下、向左、向右、左上、左下、右上、右下等幾種情況,如圖3所示。

圖3 視點變化情況
因此在進行三維場景顯示時,可以根據視點位置及其變化趨勢對三維場景分級逐漸顯示。采用距離選擇法和偏心率選擇法相結合的方法選擇LOD細節層次。距離選擇法是根據場景內視點距離模型的歐氏距離選擇合適的LOD模型,這是最簡單也最常用的一種方法。場景的精細程度隨著視點到模型距離的增大而減小,當距離視點較遠時,一些細節就變得不重要,可以選擇較低分辨率,甚至可以選擇不顯示。偏心率選擇法是根據視覺規律,通常居于視野中心的模型往往具有更高的關注度,可以選擇較高分辨率的細節模型,而居于邊緣的模型容易不被重視,選擇較低分辨率的細節模型。圖4(a)、圖4(b)分別為距離選擇法和偏心率選擇法的示意圖。
1.3 不同層次LOD模型加載
對構建的不同層次三維模型進行樹形結構存儲和建立索引,便于后期加載繪制。集群系統采用4臺子節點,每臺節點控制一臺投影儀,將4臺投影儀進行多屏拼接繪制。按投影屏幕范圍與模型顯示區域進行換算,將屏幕范圍劃分為4塊進行顯示,并在此基礎上再次劃分為16塊及64塊等更高等級。根據人眼觀察規律,視點通常位于屏幕中心,因此選擇屏幕中心作為初始視點,并以初始視點為中心進行屏幕等級劃分。在視點移動規律下,可知通常上、下、左、右 4個方向是人眼視野最易變化的方向,由模型在這4個方向上距離初始視點的歐式距離作為判定模型分辨率等級的標準。與此同時,兼顧左上、左下、右上、右下 4種視點移動情況,將對這4個方向上(即對角線方向)的模型層次等級進行一定的提高。以X軸、Y軸分別進行八等分,取交點作為屏幕劃分依據,得到均勻劃分區域,不同屏幕區域對應不同范圍下的三維模型,進而計算得到不同等級屏幕區域所需加載顯示范圍。LOD模型分級加載顯示流程如下圖5所示。

圖4
將屏幕按照劃分規則劃分為4個等級(如圖6所示),其中最小框線包含的區域(區域Ⅰ)是視點最關注區域,區域Ⅱ次之,區域Ⅲ進一步模糊化,最外層區域Ⅳ采用LOD4。在模型顯示及變化時,先在整體范圍Ⅳ內加載LOD4,區域Ⅲ進一步加載LOD3,區域Ⅱ加載LOD2,區域Ⅰ加載LOD1。當顯示區域穩定不變后,根據需要按照Ⅱ、Ⅲ、Ⅳ的順序逐步加載更為精細的模型。

圖5 LOD模型分級加載顯示流程

圖6 屏幕等級劃分方案
2.1 并行結果顯示
試驗采用的集群系統由1臺主節點機、4臺子節點機和4臺投影儀組成。所有節點計算機操作系統均為Windows 7,其中主節點內存為4.00 GB,子節點內存為2.00 GB。在集群系統中,通過主節點對4臺子節點進行控制,每臺子節點連接一臺投影儀,利用4臺投影儀對模型進行并行顯示,以解決單一計算機繪制時易產生卡頓、運行緩慢等現象。試驗所使用的測試數據為自主構建的三維城市場景模型。
使用OSG(OpenSceneGraph)三維描繪引擎對三維城市模型進行管理渲染,通過OSG渲染流水線(依次遍歷操作、更新遍歷、揀選遍歷和繪制遍歷),得到三維場景的渲染結果。將所有層次LOD模型一次載入,利用OSG中的PageLOD節點代替LOD節點,每一層分辨率模型只在顯示時加載,不顯示時可動態卸載[15-16]。采用改進的邊折疊算法[7]對模型進行簡化,構建4個層次等級的LOD模型,并存儲在計算機節點中,由主節點對模型繪制過程進行整體管理和調度。按照不同等級屏幕對應的模型范圍,根據視點的選擇,每塊屏幕逐級加載對應的不同等級LOD層次模型,并隨視點變化動態的加載符合重要度等級的LOD模型,卸載當前等級LOD模型。待視點穩定后,分區域逐級完成整個模型的加載及繪制。
2.2 結果及分析
3DCM在集群并行系統下的顯示效果如圖7所示。表2為原始未簡化三維模型和LOD簡化后模型的頂點數、面數、幀數等試驗結果。可以看出,通過簡化后的模型的三角面片數和頂點個數減少,模型數據量變小,為模型可視化提供了良好的數據準備;利用分層逐級加載模式進行場景加載,每塊模型根據視點重要度只在顯示使加載,不顯示時動態卸載,模型加載時間由21 s提升至8 s,能夠快速地渲染顯示;根據視點變化規律動態加載模型,運行效率得到了大幅提高,幀率由18.9幀/s加速至30.1幀/s,能夠滿足連貫流暢的可視化效果。采用基于視點變化規律,通過距離選擇法與偏心率選擇法相結合的方法分層次、分區域的渲染顯示三維場景,能夠在較短時間內完成3DCM的顯示,且具有良好的可視化效果。

圖7 3DCM集群并行環境顯示效果

表2 不同分辨率模型實驗結果對比
針對三維城市模型數據量大、運行速度慢、計算壓力大等問題,對三維模型構建了多層次細節模型,根據視點變化規律,結合距離選擇法與偏心率選擇法,對屏幕進行劃分,按照劃分方案對三維模型分層次加載,在集群系統中并行地實現了3DCM的快速顯示。研究表明:
(1) 對三維場景進行LOD簡化,可以大大減少模型的數據量。
(2) 基于視點的模型加載顯示可以有效地提高三維場景的顯示速率,且顯示連貫,沒有明顯的跳幀現象。
(3) 在集群系統中采用并行的方式對三維模型進行處理,是一種快速有效的方法,可以大幅提高3DCM的處理顯示速度,提供流暢連貫的可視化效果。
隨著數字城市的快速發展,需要越來越精細的3DCM。如何解決大范圍模型數據的處理顯示,建立更連貫精細的LOD層次模型,以及利用GPU加速圖形的渲染等問題還需要進一步研究;同時,在多屏幕顯示繪制中屏幕中間易產生裂縫,影響整體可視化效果,通過硬件軟件相結合的方法解決屏幕裂縫,實現多屏無縫可視化繪制將會是下一步研究方向。
[1] CLARK J.Hierarchical Geometric Models for Visible Surface Algorithms[J].Communications of the ACM,1976, 19(10):547-554.
[2] 俞凌云,王毅剛,王亢.大屏幕無縫拼接系統的應用軟件平臺開發[J].計算機應用,2008,28(9):2434-2436.
[3] 張志國.基于邊塌陷和頂點分裂的動態多分辨率網格生成[D].上海:上海交通大學,2006.
[4] CHEN Huahong,LUO Xiaonan,LING Ruotian. Surface Simplifi-cation Using Multi-edge Mesh Collapse[C]∥International Conference on Image and Graphics.[S.l.]: IEEE, 2007:954-959.
[5] 石教英.分布式并行圖形繪制技術及其應用[M].北京:科學出版社, 2010.
[6] 遲學斌.高性能并行計算[M].北京:中國科學院計算機網絡信息中心,2010.
[7] 楊武. 三維城市模型數據組織與存儲方法研究[D].湘潭:湖南科技大學,2014.
[8] 朱慶,龔俊,杜志強,等.三維城市模型的多細節層次描述方法[J].武漢大學學報(信息科學版),2005,30(11):965-969.
[9] ASTHEIMER P, P?CHE M.Level of Detail Generation and Its Applications in Virtual Reality[C]∥Conference on Virtual Reality Software and Technology.[S.l.]: World Scientific Publishing, 1994.
[10] 費紅輝,王毅剛.大規模場景分割及LOD結構生成算法研究[J].計算機應用與軟件, 2012,29(7):227-230.
[11] 付燕平,羅明宇,劉其軍.大數據三維模型快速顯示技術研究[J].計算機技術與發展, 2015(5):87-90.
[12] 殷智慧. 三維空間數據存儲技術與動態調度機制研究[D].湘潭:湖南科技大學,2014.
[13] 李擁.基于 OpenMP 的三維城市模型并行繪制研究[D].湘潭:湖南科技大學.2013.
[14] 龔俊,朱慶,張葉廷,等.顧及多細節層次的三維 R 樹索引擴展方法[J].測繪學報,2011,40(2):249-255.
[15] 聶小波,邢光成,陳濤,等.OpenGL 及其在 DEM 可視化中的應用[J].地理空間信息,2009,7(3):48-50.
[16] 王銳,錢學雷. OpenSceneGraph三維渲染引擎設計與實現[M]. 北京:清華大學出版社,2009:74-86.
TheFastDisplayMethodfor3DCMBasedontheViewpointMovinginClusterEnvironment
LI Chaokui1,2,FANG Jun1,2,FANG Wen1,2,BU Pu1,2
(1. National-local Joint Engineering Laboratory of Geo-spatial Information Technology, Hunan University of Science and Technology, Xiangtan 411201, China; 2. Hunan Province Engineering Laboratory of Geospatial Information, Hunan University of Science and Technology, Xiangtan 411201, China)
With the rapid development of digital city construction, as the core content of digital city,3DCM has the characteristics of large amount of data, slow running speed, great calculation pressure and so on in the existing computer’s running environment.To solve these problems, combined with the parallel computing, a new fast display method for 3DCM based on the viewpoint move rules is proposed.Using static LOD simplification algorithm to simplify the 3DCM to four resolution level.Based on the viewpoint move rules, the LOD model was selected and gradual loading according to the distance and the eccentricity ratio.The results were parallel displaying in the cluster system, which effectively solves the problems of slow load display and scene jumping for large-scale 3DCM,achieved the fast display of large scale 3DCM.Experimental results show that this method can quickly and effectively deal with large-scale 3DCM rendering, while taking into account the efficiency and showing the details of the model, has a good visual effect, which has important significance for the development of digital city.
cluster environment; viewpoint moving; 3DCM;fast display
李朝奎,方軍,方文,等.集群環境下基于視點移動的三維城市模型快速顯示方法[J].測繪通報,2017(10):74-78.
10.13474/j.cnki.11-2246.2017.0319.
2017-02-17
國家自然科學基金(41271390);湖南省研究生創新基金(CX2016B541);湖南省重點實驗室開放基金項目(JL16K01;CT16K02);湖南省教育廳重點項目(16A070)
李朝奎(1967—),男,教授,研究方向為GIS理論方法及其應用。E-mail:616059644@qq.com
P208
A
0494-0911(2017)10-0074-05