黃建峰,宋金根,丁小蔚,龔堅(jiān)剛,孫福昌,黃 淮
1(浙江省電力公司檢修公司,杭州 310000)2(浙江華云電力工程設(shè)計(jì)咨詢有限公司,杭州 310000)3(南京工程學(xué)院 電力學(xué)院,南京 211167)
隨著電力系統(tǒng)可視化水平的不斷發(fā)展,三維仿真技術(shù)在輸電線路輔助設(shè)計(jì)、運(yùn)行管理和技能培訓(xùn)中的應(yīng)用越來越廣泛,為電網(wǎng)運(yùn)維部門提供了具體的操作對(duì)象和高效的輔助手段[1].然而,作為輸電線路三維可視化系統(tǒng)的重要組成部分,廊道內(nèi)復(fù)雜的地形結(jié)構(gòu)對(duì)三維引擎提出了極大要求和挑戰(zhàn),如何有效地實(shí)時(shí)渲染大規(guī)模虛擬地形場景成為輸電線路仿真的主要瓶頸[2].
文獻(xiàn)[3]采用基于圖像的建模方法合成了輸電線路的地形環(huán)境,避免了大量數(shù)據(jù)的復(fù)雜建模和優(yōu)化工作,缺點(diǎn)是降低了三維場景的交互性和沉浸感.文獻(xiàn)[4]通過無人機(jī)掃描獲取地形場景的數(shù)據(jù)模型,結(jié)合區(qū)域紋理信息構(gòu)建了輸電線路走廊的三維地理環(huán)境,但是龐大的數(shù)據(jù)量嚴(yán)重影響了建模速度.
靜態(tài)LOD是一種適用于GPU處理的虛擬地形場景繪制方法.文獻(xiàn)[5]介紹了靜態(tài)LOD算法的優(yōu)缺點(diǎn),利用邊界的多重細(xì)節(jié)層次來解決相鄰地形塊之間的裂縫問題.文獻(xiàn)[6]引入線性四叉樹管理機(jī)制構(gòu)建了地形塊的調(diào)度準(zhǔn)則,提高了畫面的流暢度和渲染效率.本文研究了基于靜態(tài)LOD的輸電線路虛擬地形繪制方法,以滿足輸電線路三維可視化系統(tǒng)的實(shí)際需求.
通常情況下,靜態(tài)LOD算法采用四叉樹法劃分地形網(wǎng)格,離線生成各地形塊的不同細(xì)節(jié)層級(jí),根據(jù)評(píng)價(jià)函數(shù)決定渲染時(shí)采用的細(xì)節(jié)層級(jí),對(duì)地形塊進(jìn)行載入和繪制[7].在不影響地形場景逼真度的前提下,有效減少了渲染的數(shù)據(jù)量和時(shí)間.
然而,四叉樹法采用正方形作為初始地形網(wǎng)格,在此基礎(chǔ)上進(jìn)行遞歸劃分,對(duì)生成的地形塊和節(jié)點(diǎn)數(shù)要求非常嚴(yán)格.同時(shí),算法根據(jù)視點(diǎn)的位置和地形塊的復(fù)雜程度建立評(píng)價(jià)函數(shù),忽視了視點(diǎn)移動(dòng)速度對(duì)層次細(xì)節(jié)載入的影響.
地形數(shù)據(jù)的存儲(chǔ)是實(shí)現(xiàn)大規(guī)模地形算法的首要和關(guān)鍵.若采用正方形作為長距離輸電線路虛擬場景的初始地形,不僅高程模型數(shù)據(jù)量龐大,其空間分布也會(huì)不均勻,導(dǎo)致生成的地形四叉樹結(jié)構(gòu)不平衡,嚴(yán)重影響了虛擬場景的建模速度和效率[8].為此,本文根據(jù)輸電線路走廊的位置和范圍,進(jìn)行地形數(shù)據(jù)的分塊優(yōu)化存儲(chǔ)處理.
首先,獲取高程模型數(shù)據(jù)的等間距離散點(diǎn)三維坐標(biāo)和拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)信息,保證地形數(shù)據(jù)的完整性.遍歷所有采集到的高程數(shù)據(jù)點(diǎn),以最小矩形包圍盒為地形結(jié)構(gòu)的根節(jié)點(diǎn),劃分矩形區(qū)域劃分成多個(gè)邊長為2n+1的正方形地形塊,構(gòu)建下一層次的子節(jié)點(diǎn),當(dāng)區(qū)域不足形成正方形時(shí),以包含該區(qū)域的最小正方形進(jìn)行增補(bǔ),如圖1所示.對(duì)各子節(jié)點(diǎn)包含的地形塊進(jìn)行四叉樹遞歸分割,構(gòu)建不同細(xì)節(jié)層級(jí)的地形數(shù)據(jù)結(jié)構(gòu),深度值取4–7之間.
圖1 地形數(shù)據(jù)分塊模型
在輸電線路虛擬場景中,視角移動(dòng)速度會(huì)對(duì)屏幕的渲染效果產(chǎn)生重要影響,視角移動(dòng)速度越快則看到的場景越模糊.因此,將視角移動(dòng)速度納入評(píng)價(jià)因子中,結(jié)合視點(diǎn)距離、地形復(fù)雜度等因素改進(jìn)評(píng)價(jià)函數(shù)f,計(jì)算渲染時(shí)采用的地形細(xì)分程度,公式如式(1)所示:
式中,D(z)為地形塊高程值的方差;C1、C2分別為視點(diǎn)距離和地形復(fù)雜度的控制因子;L為視點(diǎn)與地形塊的直線距離;r為地形塊邊長;v為視點(diǎn)移動(dòng)速度.
在其他控制因子保持不變的情況下,當(dāng)移動(dòng)速度變快時(shí),評(píng)價(jià)函數(shù)變小,表示將采用深度值較低的地形塊.若評(píng)價(jià)函數(shù)計(jì)算結(jié)果小于1,則對(duì)當(dāng)前地形層級(jí)直接進(jìn)行渲染操作,否則重新計(jì)算深度值更高的細(xì)節(jié)層級(jí),從而提高了大規(guī)模地形渲染的效率.
對(duì)四叉樹結(jié)構(gòu)中各細(xì)節(jié)層級(jí)的正方形地形單元,采集數(shù)字高程模型中各單元頂點(diǎn)的平面坐標(biāo)和高程值,利用數(shù)學(xué)函數(shù)完成網(wǎng)格內(nèi)地形曲面的模擬,適用于虛擬現(xiàn)實(shí)系統(tǒng)中的大規(guī)模地形場景建模[9].本文提出了一種基于線性插值函數(shù)的地形渲染方法.
插值函數(shù)直接決定了地形建模的精度和速度,常用的函數(shù)類型有距離加權(quán)、線性內(nèi)插、樣條函數(shù)、最小二乘法等[10].其中,線性插值函數(shù)具有數(shù)據(jù)存儲(chǔ)量小、拓?fù)浣Y(jié)構(gòu)簡單、易于采集和計(jì)算的優(yōu)點(diǎn),獲得了較為廣泛的使用.根據(jù)插值方式的不同,線性函數(shù)主要分為雙線性多項(xiàng)式、雙三次多項(xiàng)式和最鄰近插值三種.
考慮到輸電線路廊道內(nèi)地形條件的復(fù)雜性,采用單一的插值方式難以準(zhǔn)確描述地理?xiàng)l件信息,也影響了虛擬場景的還原度和沉浸感.為保證地形模擬精度的同時(shí)提高建模速度,根據(jù)網(wǎng)格內(nèi)地形特征選擇不同的插值模型,對(duì)地形平坦區(qū)域采用計(jì)算量小的雙線性多項(xiàng)式,對(duì)地形崎嶇區(qū)域采用模擬精度高的雙三次多項(xiàng)式進(jìn)行插值計(jì)算.
以線性插值法為基礎(chǔ),引入閾值判斷規(guī)則格網(wǎng)中各單元格高程值的方差,選擇不同的線性函數(shù)模擬區(qū)域表面的地形起伏,流程如圖2所示.
圖2 算法流程圖
步驟1.設(shè)定閾值T.
步驟3.判斷閾值T和方差的大小,若閾值大轉(zhuǎn)步驟4,否則轉(zhuǎn)步驟5.
步驟4.采用雙線性多項(xiàng)式進(jìn)行插值計(jì)算,利用待插值點(diǎn)所在格網(wǎng)的四個(gè)頂點(diǎn)坐標(biāo)計(jì)算多項(xiàng)式系數(shù),待插值點(diǎn)高程的表達(dá)式為:
式中,x、y為待插值點(diǎn)的平面坐標(biāo),a11、a12、a21、a22為雙線性多項(xiàng)式系數(shù).
步驟5.采用雙三次多項(xiàng)式進(jìn)行插值計(jì)算,多項(xiàng)式系數(shù)由待插值點(diǎn)所在格網(wǎng)和鄰近格網(wǎng)的16個(gè)頂點(diǎn)坐標(biāo)決定,高程表達(dá)式為:
步驟6.計(jì)算所有單元,完成基于規(guī)則格網(wǎng)的地形建模.
為驗(yàn)證本算法在仿真大規(guī)模地形場景方面的有效性和優(yōu)越性,選取了某地區(qū)數(shù)字高程模型的5000個(gè)采樣點(diǎn),劃分為10*10網(wǎng)格,分別采用ROAM算法、規(guī)則四叉樹算法和本文算法進(jìn)行地形渲染,計(jì)算不同狀態(tài)下地形塊的渲染數(shù),對(duì)比測試結(jié)果如表1所示.
表1 算法測試結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明:在靜止?fàn)顟B(tài)時(shí),三種算法繪制的三角面數(shù)基本相同;然而當(dāng)視點(diǎn)處于運(yùn)動(dòng)狀態(tài)時(shí),本文算法有效減少了三角面的繪制數(shù),具有更加流暢的虛擬場景幀數(shù).
針對(duì)算法中各細(xì)節(jié)層級(jí)的地形塊,分別采用雙線性法、雙三次法和閾值判斷法模擬地形起伏,在保證模擬精度的同時(shí)有效減少了運(yùn)算時(shí)間,如圖3所示.
圖3 網(wǎng)格生成結(jié)果
針對(duì)輸電線路三維可視化系統(tǒng)中地形場景的渲染問題,提出一種基于靜態(tài)LOD的虛擬地形場景建模方法.建立地形數(shù)據(jù)的分塊優(yōu)化處理結(jié)構(gòu),將視角移動(dòng)速度納入評(píng)價(jià)函數(shù)的控制因子中,通過函數(shù)計(jì)算結(jié)果調(diào)用細(xì)節(jié)層級(jí).根據(jù)正方形網(wǎng)格內(nèi)高程點(diǎn)的方差分別選擇不同的插值函數(shù)模擬地形起伏,實(shí)驗(yàn)結(jié)果證明本文算法有效減少了運(yùn)動(dòng)狀態(tài)下地形三角面的繪制數(shù),具有更加流暢的虛擬場景體驗(yàn)和良好的地形仿真效果.
1 陳海波,鄭健,費(fèi)瑞軼,等.虛擬現(xiàn)實(shí)技術(shù)在電力系統(tǒng)中的典型應(yīng)用.電網(wǎng)與清潔能源,2016,32(2):20–25.
2 楊成順,楊中亞,黃宵寧.基于資產(chǎn)類模型和空間信息模型的輸電線路三維可視化平臺(tái).電測與儀表,2015,52(23):122–128.[doi:10.3969/j.issn.1001-1390.2015.23.022]
3 孫鳳杰,劉慧娟,陳鶴.輸電線路虛擬三維場景建模方法研究與實(shí)現(xiàn).中國電力,2015,48(9):86–89,94.
4 麥曉明,陳馳,彭向陽,等.輸電線路走廊三維可視化技術(shù)和系統(tǒng)設(shè)計(jì).中國電力,2015,48(2):98–103.
5 夏杰,陳奇.基于靜態(tài)LOD的海量地形繪制中的接縫算法.計(jì)算機(jī)工程與設(shè)計(jì),2010,31(22):4847–4850.
6 李欽,戴樹嶺,趙永嘉,等.分塊 LOD 大規(guī)模地形實(shí)時(shí)渲染算法.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2013,25(5):708–713.
7 馬彥力.三維GIS大數(shù)據(jù)量場景快速可視化關(guān)鍵技術(shù)研究[碩士學(xué)位論文].杭州:浙江大學(xué),2013.
8 劉揚(yáng),宮阿都,李京.基于數(shù)據(jù)分層分塊的海量三維地形四叉樹簡化模型.測繪學(xué)報(bào),2010,39(4):410–415.
9 盧立托,李攀峰,馬洪浩.基于GPU的不規(guī)則三角網(wǎng)向規(guī)則格網(wǎng)數(shù)字高程模型轉(zhuǎn)換算法優(yōu)化.計(jì)算機(jī)應(yīng)用,2015,35(S1):32–34.
10 顧春雷,楊漾,朱志春.幾種建立DEM模型插值方法精度的交叉驗(yàn)證.測繪與空間地理信息,2011,34(5):99–102.
11 Chen GY,Du LB,He HJ,et al.Research on key techniques of expendable conductivity temperature depth measuring system.Instrumentation,2015,2(2):18–27.