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