卜曉勵(lì),張?zhí)煊?,房昱緯,?文,湯 華,倪洪亮
(1.云南省交通規(guī)劃設(shè)計(jì)研究院有限公司, 云南 昆明 650011;2.中國(guó)科學(xué)院 武漢巖土力學(xué)研究所巖土力學(xué)與工程國(guó)家重點(diǎn)實(shí)驗(yàn)室, 湖北 武漢 430071;3.中國(guó)科學(xué)院大學(xué), 北京 100049)
90年代初,隨著計(jì)算機(jī)圖形學(xué)和三維可視化技術(shù)的高速發(fā)展,三維地質(zhì)模型的可視化技術(shù)與分析成為地質(zhì)、巖土、資源、環(huán)境和GIS等領(lǐng)域的研究熱點(diǎn)。三維地質(zhì)模型的可視化技術(shù)是利用計(jì)算機(jī)圖形學(xué),將場(chǎng)地內(nèi)地質(zhì)信息以直觀三維圖像方式展現(xiàn),并通過(guò)計(jì)算機(jī)技術(shù)對(duì)其進(jìn)行分析,便于人們了解場(chǎng)地內(nèi)的地質(zhì)現(xiàn)象,和對(duì)工程建設(shè)做指導(dǎo)[1-6]。
三維地質(zhì)模型的可視化空間數(shù)據(jù)模型構(gòu)建方法可以分為面模型、體模型、混合模型三大類[7-8]。其中面模型是使用面元描述三維空間對(duì)象的表面,描述地質(zhì)體的輪廓。面模型構(gòu)建速度快,顯示和數(shù)據(jù)更新方便,但是沒有對(duì)三維空間對(duì)象的內(nèi)部屬性進(jìn)行記錄和表示,不便于對(duì)三維空間對(duì)象進(jìn)行分析。
基于混合模型的三維地質(zhì)模型構(gòu)建方法結(jié)合面模型和體模型的優(yōu)點(diǎn),能更好的對(duì)場(chǎng)地三維地質(zhì)的邊界和內(nèi)部信息進(jìn)行表示。但是混合模型難以解決兩種方法數(shù)據(jù)一致性的問題,在實(shí)際應(yīng)用中,混合模型的混合方法,模型的處理和分析技術(shù)還待深入研究[9]。
基于體模型的三維地質(zhì)模型構(gòu)建方法能對(duì)三維空間對(duì)象的內(nèi)部屬性的特性進(jìn)行描述,分為規(guī)則體元和非規(guī)則體元兩大類,其中規(guī)則體元主要是基于體素的構(gòu)建方法,體素是使用規(guī)則的立方體來(lái)描述三維空間內(nèi)的對(duì)象信息,其結(jié)構(gòu)簡(jiǎn)單,使用插值方法獲[10]取到的場(chǎng)地內(nèi)每個(gè)點(diǎn)的對(duì)象信息可直接用于構(gòu)建基于體素的三維模型,對(duì)于場(chǎng)地內(nèi)三維空間信息的分析和操作也相對(duì)容易,而且模型通用性高,缺點(diǎn)是對(duì)于需要描述精確度要求較大的空間實(shí)體,需要生成大量的體素體元,其精度每提升一倍,數(shù)據(jù)量將提升2的3次冪,對(duì)數(shù)據(jù)的存儲(chǔ)和模型的計(jì)算速度有非常大的影響。對(duì)于不規(guī)則體元的三維空間描述方法具有代表性的為廣義三棱柱模型,廣義三棱柱模型由上下兩個(gè)三角形和側(cè)面三個(gè)四邊形組成的不規(guī)則三棱柱作為構(gòu)建三維模型的基本體元,廣義三棱柱模型相較于體素模型在相同精度下需要的數(shù)據(jù)量將大幅減少。但是廣義三棱柱模型結(jié)構(gòu)相對(duì)復(fù)雜,在對(duì)三維空間三角剖分算法復(fù)雜,在使用廣義三棱柱模型對(duì)地層進(jìn)行剖分時(shí)會(huì)造成大量數(shù)據(jù)的冗余,難以同時(shí)能精準(zhǔn)表示地質(zhì)體內(nèi)外部信息和擁有簡(jiǎn)單易處理的數(shù)據(jù)結(jié)構(gòu),對(duì)地質(zhì)體進(jìn)行有效的分析。
針對(duì)上述問題,如能解決基于規(guī)則體元的三維地質(zhì)模型的數(shù)據(jù)存儲(chǔ)量大、計(jì)算速度慢、渲染效率低的問題,將大大提高規(guī)則體元三維地質(zhì)模型的適用性。Max等[11]分析模型內(nèi)各區(qū)域的相關(guān)性,提高了規(guī)則體元的渲染效率。文四立等[12]提出了一個(gè)處理規(guī)格化數(shù)據(jù)的算法。李斌等[13]對(duì)規(guī)則體元間的相鄰關(guān)系進(jìn)行分析,提高渲染時(shí)光線與體元的求交速度,加速了模型渲染效率。
本文基于鉆探數(shù)據(jù)地層分層信息,利用OSG(Open Scene Graph, OSG)圖形平臺(tái)[14],建立規(guī)則體元的三維地質(zhì)模型。利用LOD(Levels of Detail, LOD)切片技術(shù)[15]、數(shù)據(jù)分塊存儲(chǔ)和多線程計(jì)算技術(shù)等方法對(duì)三維地質(zhì)模型構(gòu)建方法進(jìn)行優(yōu)化,提升了模型渲染速度和模型操作時(shí)的幀率。
本文使用克里金插值方法[16]來(lái)計(jì)算場(chǎng)地內(nèi)未知點(diǎn)的地層信息,不考慮尖滅、斷層等復(fù)雜的地質(zhì)條件的處理,將重點(diǎn)討論體素三維地質(zhì)模型的加速技術(shù)。利用地質(zhì)勘察鉆探數(shù)據(jù)的地層分層信息作為三維地質(zhì)模型的基礎(chǔ)數(shù)據(jù)。對(duì)場(chǎng)地出現(xiàn)的地層類型進(jìn)行單獨(dú)處理,鉆孔位置處的地層高程信息作為已知點(diǎn)信息。根據(jù)設(shè)定的精度和場(chǎng)地大小確定范圍內(nèi)數(shù)據(jù)點(diǎn)數(shù)量(見式(1)),當(dāng)精度為1 m時(shí),在100 m×100 m大小的場(chǎng)地范圍內(nèi)有10 000個(gè)數(shù)據(jù)點(diǎn)來(lái)表示該地層在場(chǎng)地內(nèi)的高程信息;當(dāng)精度為10時(shí)在100 m×100 m場(chǎng)地范圍內(nèi)有100個(gè)數(shù)據(jù)點(diǎn)來(lái)表示該地層在場(chǎng)地內(nèi)的高程信息,以此類推,精度越高數(shù)據(jù)點(diǎn)越多,對(duì)數(shù)據(jù)的計(jì)算速度和模型渲染效率影響就越大。
(1)
首先利用普通克里金方法得到場(chǎng)地內(nèi)未知點(diǎn)處各地層的高程信息,而后對(duì)場(chǎng)地內(nèi)出現(xiàn)的地層進(jìn)行從上到下的排序,并按從上到下的順序?qū)Ω鞯貙舆M(jìn)行組合,每層地層的深度為該地層每個(gè)數(shù)據(jù)點(diǎn)的高程到下一層地層的高程。
通過(guò)計(jì)算后得到的場(chǎng)地內(nèi)數(shù)據(jù)點(diǎn)信息并使用OSG圖形平臺(tái)進(jìn)行三維地質(zhì)模型的構(gòu)建,其中每個(gè)數(shù)據(jù)點(diǎn)對(duì)應(yīng)一個(gè)規(guī)則體元,每個(gè)體元均為規(guī)則立方體,對(duì)體元進(jìn)行密鋪層疊就得到了三維地質(zhì)體。在3D場(chǎng)景中對(duì)三維地質(zhì)體進(jìn)行Ray Trace方式體渲染得到地質(zhì)體實(shí)時(shí)交互分析圖形環(huán)境。圖1為1 280 m×128 m場(chǎng)地范圍內(nèi),通過(guò)8個(gè)鉆孔信息建立的高度為128 m的三維地質(zhì)模型。該模型精度為1 m,由2 097萬(wàn)個(gè)數(shù)據(jù)點(diǎn)構(gòu)成,模型生成后大小為160 M,模型查看時(shí)的幀率為30(幀率越高,顯示畫面越流暢,如果幀率小于30時(shí)模型顯示會(huì)明顯感覺不連貫)。按全線場(chǎng)地256 m×256 km估算,存儲(chǔ)空間占用會(huì)達(dá)到32 G,同時(shí)顯存空間占用也會(huì)達(dá)到32 G。同時(shí)傳統(tǒng)方式的體渲染是基于物理的視線追蹤體渲染,即便使用高透明度體元,累積之后也會(huì)得到一個(gè)較低的透明度,呈現(xiàn)果凍樣效果,不利于地質(zhì)體內(nèi)部查看。低幀率和高存儲(chǔ)空間占用率導(dǎo)致使用該模型不能有效用于對(duì)地質(zhì)體的分析,需要對(duì)地質(zhì)體模型進(jìn)行效率優(yōu)化,提高規(guī)則體元三維地質(zhì)模型的適用性與直觀性。
圖1 1 280 m×128 m×128 m三維地質(zhì)模型
針對(duì)模型渲染速度慢、占用存儲(chǔ)空間等問題,引入降采樣LOD技術(shù),模型壓縮技術(shù),多線程Paged LOD調(diào)度技術(shù),并且對(duì)渲染著色進(jìn)行調(diào)整。
為降低全線地質(zhì)體顯存與渲染消耗,對(duì)顯存占用和渲染著色進(jìn)行優(yōu)化。首先將全線地質(zhì)體進(jìn)行規(guī)則分塊。如果按1 280 m×128 m大小進(jìn)行分塊,在256 m×256 km全線場(chǎng)地中可得到400塊1 280 m×128 m大小的地質(zhì)體。精度為1 m時(shí),每塊有1 280 ×128×128個(gè)體元,總共有256 000×256×128個(gè)體元。地質(zhì)體距離觀察點(diǎn)遠(yuǎn)時(shí),占用屏幕像素少,沒有細(xì)節(jié)觀察的需求,可以對(duì)地質(zhì)體進(jìn)行線性降采樣,并且根據(jù)觀察距離遠(yuǎn)近進(jìn)行調(diào)度,降低顯存消耗以及渲染消耗。
構(gòu)造低分辨率的地質(zhì)體,使用長(zhǎng)寬高兩倍于高分辨率的體元對(duì)地質(zhì)體進(jìn)行重新層疊密鋪,根據(jù)每個(gè)體元的中心對(duì)應(yīng)的中心點(diǎn)坐標(biāo),獲取高分辨率地質(zhì)體模型對(duì)應(yīng)坐標(biāo)點(diǎn)周圍的四個(gè)體元,根據(jù)體元中心坐標(biāo),進(jìn)行三次線性插值,就能得到新的低分辨率地質(zhì)體元顯示參數(shù)。重復(fù)使用此方法,可以得到多個(gè)分辨率層級(jí)的地質(zhì)體模型。此時(shí)得到的多個(gè)不同分辨率層級(jí)的地質(zhì)體,實(shí)際是對(duì)應(yīng)同一個(gè)地質(zhì)空間,不同分辨率下的圖形呈現(xiàn)。為使圖形顯示近處有細(xì)節(jié),遠(yuǎn)處消耗低,就需要使用LOD技術(shù)對(duì)分辨率層級(jí)進(jìn)行調(diào)度。使用視點(diǎn)坐標(biāo)和地質(zhì)體包圍盒中心點(diǎn)的距離作為參考參數(shù),指定各分辨率層級(jí)地質(zhì)體的適用參數(shù)范圍通過(guò)LOD技術(shù)進(jìn)行自動(dòng)調(diào)度,靈活呈現(xiàn)遠(yuǎn)近地質(zhì)體概況與細(xì)節(jié)。
降采樣得到低分辨率的地質(zhì)體,加上原本就存在且作為最精細(xì)一層LOD的高分辨率地質(zhì)體模型,實(shí)際提高了數(shù)據(jù)存儲(chǔ)空間的用量,為降低內(nèi)存消耗,并考慮更大范圍的地質(zhì)體渲染,引入OSG的PagedLOD技術(shù),并加以優(yōu)化,使用磁盤空間緩存不處于顯示狀態(tài)的地質(zhì)體。OSG的PagedLOD技術(shù)默認(rèn)使用單線程磁盤文件加載,加載壓力大時(shí)效率較低;如果視點(diǎn)視角快速調(diào)整,會(huì)出現(xiàn)各視點(diǎn)所需LOD緩存排隊(duì)的情況,導(dǎo)致顯示延遲加大;并且數(shù)據(jù)從內(nèi)存?zhèn)鬏斨溜@卡沒有限制,如果某一幀加載了大量數(shù)據(jù),會(huì)由于顯卡帶寬占用大導(dǎo)致卡頓。
針對(duì)OSG的技術(shù)特征,將PagedLOD調(diào)整為多線程磁盤文件加載,極大增加了磁盤文件加載效率。經(jīng)測(cè)試在6線程左右時(shí)效果最佳。視點(diǎn)視角快速調(diào)整時(shí),LOD緩存請(qǐng)求隊(duì)列中會(huì)有很多過(guò)期請(qǐng)求,每幀剔除這部分請(qǐng)求大幅降低了排隊(duì)數(shù)量,以及通過(guò)限制每幀并入場(chǎng)景的節(jié)點(diǎn)數(shù)量,避免了顯存帶寬占用過(guò)大導(dǎo)致卡頓。
由于地質(zhì)體數(shù)據(jù)點(diǎn)分布均勻,隨機(jī)性低,相鄰數(shù)據(jù)點(diǎn)有較大概率具有相同的數(shù)據(jù)值,因而不需要考慮有損壓縮方法,直接引入Bzip算法進(jìn)行數(shù)據(jù)壓縮即可,實(shí)測(cè)壓縮率可達(dá)99%。
常見體渲染是對(duì)每個(gè)采樣體元的顏色按照透明度進(jìn)行累計(jì),最終得到一個(gè)較低透明度的屏幕顏色。按地質(zhì)體觀察的特點(diǎn),對(duì)渲染方式進(jìn)行改進(jìn),著重呈現(xiàn)體元不連續(xù)的部分,對(duì)連續(xù)體元?jiǎng)t不進(jìn)行累計(jì),得到一個(gè)透明度較高,又能呈現(xiàn)地質(zhì)體內(nèi)部結(jié)構(gòu)的渲染效果。
測(cè)試顯示,使用加速技術(shù)對(duì)比,在存儲(chǔ)空間占用,顯卡性能消耗,幀率,顯示效果上具有明顯的優(yōu)勢(shì)。圖2和圖3分別為沒有使用加速技術(shù)和使用加速技術(shù)的12 800 m×1 280 m×128 m大小的三維地質(zhì)模型。從圖中可以看出使用加速技術(shù)構(gòu)建的三維地質(zhì)模型的透明度較高,呈現(xiàn)地質(zhì)體內(nèi)部結(jié)構(gòu)的渲染效果;沒有使用加速技術(shù)構(gòu)建的三維地質(zhì)模型很難對(duì)地質(zhì)體內(nèi)部進(jìn)行查看。表1為沒有使用加速技術(shù)和使用加速技術(shù)后的效率對(duì)比。沒有使用加速技術(shù)時(shí)幀率為0 fps,模型基本卡住不動(dòng);使用加速后幀率為50 fps,渲染效果比較流暢。沒有使用加速技術(shù)時(shí)占用了計(jì)算機(jī)的全部顯存,如果計(jì)算機(jī)顯存大于6 G,則占用顯存會(huì)更高。使用加速效果后,顯存占用和存儲(chǔ)空間占用量都遠(yuǎn)遠(yuǎn)小于沒有使用加速的模型構(gòu)建,模型生成時(shí)間有非常大幅度的提升。
圖2 沒有使用加速技術(shù)構(gòu)建的三維地質(zhì)模型
圖3 使用加速技術(shù)構(gòu)建的三維地質(zhì)模型
表1 不同構(gòu)建方法效率對(duì)比
使用加速技術(shù)后的規(guī)則體元三維地質(zhì)模型在幀率、顯存占用大小、存儲(chǔ)空間占用大小、和模型生成時(shí)間都可以滿足大小為1 280 m×128 m×128 m三維地質(zhì)體模型的分析需求。通過(guò)對(duì)比不同地質(zhì)體大小、不同線程數(shù)量和不同LOD層級(jí)對(duì)模型加速技術(shù)效率進(jìn)行評(píng)價(jià)。
對(duì)不同LOD精度層級(jí)對(duì)三維地質(zhì)模型構(gòu)建效率分析,圖4為三種地質(zhì)體大小下不同LOD精度層級(jí)對(duì)幀率的影響,其中LOD0的精度為64 m;LOD1的精度為8 m;LOD2的精度為1 m。從圖中可以看出,精度相同情況下地質(zhì)體越大,幀率越低。在地質(zhì)體大小為12 800 m×12 800 m×128 m,精度為64 m時(shí)的幀率小于精度為8 m的幀率,因?yàn)榫葹?4 m時(shí)所顯示的是全線地質(zhì)體,體元節(jié)點(diǎn)過(guò)多,所以導(dǎo)致幀率反而下降。在12 800 m×12 800 m×128 m大范圍地質(zhì)體條件下,精度為1 m時(shí)的幀率為29 fps,可以滿足對(duì)地質(zhì)體的分析需求。
圖4 不同地質(zhì)體大小下LOD精度幀率對(duì)比
圖5為三種地質(zhì)體大小下不同LOD精度層級(jí)對(duì)顯存占用的影響。從圖中可以看出,精度越高顯存占用越大,精度從1 m到8 m時(shí)顯存占用下降比較明顯。地質(zhì)體越大需占用顯存越多,在12 800 m×12 800 m×128 m大范圍地質(zhì)體條件下,1 m精度數(shù)顯存占用為1 466 MB。目前主流的顯卡顯存都在2 048 MB以上,所以對(duì)于12 800 m×12 800 m×128 m大范圍地質(zhì)體條件下所占用顯存,可以滿足對(duì)地質(zhì)體的分析需求。
圖5 不同精度顯存占用
對(duì)不同地質(zhì)體大小下的存儲(chǔ)空間占用對(duì)比,地質(zhì)體越大存儲(chǔ)空間占用越多,存儲(chǔ)空間占用大小的增長(zhǎng)比例與地質(zhì)模型大小的增長(zhǎng)比例相同。在12 800 m×12 800 m×128 m大范圍地質(zhì)體條件下,僅占用507 MB的存儲(chǔ)空間,可以滿足對(duì)地質(zhì)體的分析需求(見圖6)。
圖6 不同地質(zhì)模型大小的存儲(chǔ)空間
圖7為不同處理線程下不同大小的三維地質(zhì)模型的生成時(shí)間,從圖中可以看出地質(zhì)體越大所需要的模型生成時(shí)間越長(zhǎng)。線程數(shù)量從1條到5條時(shí)模型生成時(shí)間大幅度下降,而后時(shí)間下降趨勢(shì)減緩。使用25線程生成12 800 m×12 800 m×128 m大小的地質(zhì)模型大概需要4.5 min,在可以接受范圍。
圖7 不同線程數(shù)量的模型生成時(shí)間
通過(guò)OSG圖形平臺(tái)和計(jì)算得到的場(chǎng)地內(nèi)數(shù)據(jù)點(diǎn)信息進(jìn)行基于規(guī)則體元的三維地質(zhì)模型的構(gòu)建,如果不對(duì)生成方法進(jìn)行優(yōu)化,生成12 800 m×128 m×128 m大小的三維地質(zhì)模型所需要的時(shí)間、存儲(chǔ)空間和顯存占用和顯示幀率都不能滿足地質(zhì)模型的分析需求。本文提出一種基于規(guī)則體元的三維地質(zhì)模型構(gòu)建加速技術(shù),相比較不使用加速技術(shù),模型所需要的時(shí)間、存儲(chǔ)空間和顯存占用和顯示幀率都有大幅度的提升。
使用加速技術(shù)后,對(duì)于12 800 m×12 800 m×128 m大小的三維地質(zhì)模型,對(duì)于低精度的大范圍模型顯示幀率可以大于43 fps,高精度的模型顯示幀率可以大于29 fps;顯存占用低于1 466 MB;存儲(chǔ)空間占用低于507 MB;模型生成時(shí)間低于1 075 s??梢詽M足對(duì)地質(zhì)體的分析需求。