尤良 魯鐵定
(東華理工大學(xué) 測繪工程學(xué)院 江西南昌 330013)
隨著人類科技的快速發(fā)展,以及城市面貌的日新月異,打造“數(shù)字城市”和“智慧城市”成為了當(dāng)下城市發(fā)展的重要一環(huán)。美國副總統(tǒng)戈爾于1998年首次提出了“數(shù)字地球”的概念。之后,中國國內(nèi)地學(xué)界的學(xué)者專家意識到,“數(shù)字地球”戰(zhàn)略將是推動我國信息化建設(shè)和社會經(jīng)濟(jì)、資源環(huán)境可持續(xù)發(fā)展的重要武器。在2009年,IBM的CEO彭盛明進(jìn)一步提出了“智慧城市”的概念[1]。建設(shè)數(shù)字城市的相關(guān)理論與關(guān)鍵技術(shù)在人們的不斷探索中逐漸成熟,近些年來已經(jīng)逐步運用到了實際建設(shè)中。城市規(guī)模隨著社會的發(fā)展在不斷擴(kuò)大,城市環(huán)境的復(fù)雜程度也隨之不斷上升,而二維平面城市地圖顯然已不能滿足普通用戶和專業(yè)人士的需求。例如傳統(tǒng)平面二維的形式確實部分還原了城市樣貌,但二維城市的規(guī)劃設(shè)計終究無法完整、真實地反映城市空間的實際情況,缺乏對城市建設(shè)的指導(dǎo)意義[2]。相比于傳統(tǒng)的二維圖紙,三維數(shù)字城市平臺的特點在于臨境性、交互性、想象性,更能使人沉浸到虛擬環(huán)境中去,實現(xiàn)交互操作[3]。三維信息數(shù)據(jù)支撐的信息服務(wù)平臺搭建了一個與真實環(huán)境相差無幾的城市模型,并通過真實的三維城市模型幫助使用者全面、迅捷和直觀地了解城市的空間信息,使城市規(guī)劃、建設(shè)、管理和服務(wù)更加便利。
對此,本文研究設(shè)計了一個基于OSG的三維城市空間信息服務(wù)平臺,利用OSG平臺在三維GIS開發(fā)方面的優(yōu)勢,并以輔助城市規(guī)劃等專業(yè)人士為設(shè)計核心,充分與三維場景進(jìn)行交互,可進(jìn)行多種空間分析操作,操作結(jié)果可供用戶進(jìn)行判斷分析。在該平臺加載仿真城市模型后,可以全方位觀察城市整體樣貌。平臺具有量算分析、視域分析、日照分析、場景漫游等功能,以更直觀、更科學(xué)、更準(zhǔn)確經(jīng)濟(jì)的方式輔助城市規(guī)劃的工作,這對于促進(jìn)城市合理規(guī)劃,實現(xiàn)城市的可持續(xù)性發(fā)展具有重要意義[4]。
三維城市空間信息服務(wù)平臺的主旨是通過三維技術(shù),將一座真實的城市在平臺上模擬再現(xiàn)出來,并保證用戶在使用平臺的過程中操作流暢,畫面幀數(shù)平穩(wěn)。其設(shè)計目標(biāo)如下:
(1)該平臺的操作界面應(yīng)簡單明了,既要突出展現(xiàn)三維城市的部分,也要保證用戶初次使用時易于上手。
(2)能快速加載模型數(shù)據(jù)。
(3)開發(fā)的與三維地圖的交互功能具有實用性。
(4)具有可擴(kuò)展性,以便后續(xù)的二次開發(fā)。
該平臺為實現(xiàn)高效的管理三維場景圖形,使用的是OSG的包圍體層次?!鞍鼑w”是指在一個簡單的空間形體中,封裝了一些需要渲染的物體,從而提高運行效率。而使用OSG包圍體層次管理的三維場景圖形,通常采用一種自上向下的、分層的樹狀數(shù)據(jù)結(jié)構(gòu)來組織空間數(shù)據(jù)集,稱之為場景樹[5]。OSG場景樹主要包含三大基本類節(jié)點,即Node、Geode(葉節(jié)點)和Group(組節(jié)點)。OSG大部分節(jié)點都繼承自Group節(jié)點,少部分繼承自Node節(jié)點及Geode節(jié)點,但Geode和Group均繼承自Node節(jié)點。根節(jié)點與組節(jié)點構(gòu)建了場景樹的層次,也包含了幾何信息和用于控制其外觀的渲染狀態(tài)信息。各個葉節(jié)點包含了構(gòu)成場景中物體的實際幾何信息[6]。OSG節(jié)點的繼承關(guān)系圖如圖1所示。
圖1 節(jié)點繼承關(guān)系圖
構(gòu)建三維城市空間信息服務(wù)平臺是一個復(fù)雜的系統(tǒng)工程,為了滿足研發(fā)和應(yīng)用管理的需求,系統(tǒng)采用層次結(jié)構(gòu)進(jìn)行模塊設(shè)計和接口管理,將系統(tǒng)劃分為數(shù)據(jù)層、驅(qū)動層、應(yīng)用層三個層次進(jìn)行項目推進(jìn)和對接,既保證了各模塊間的的內(nèi)部聯(lián)系,又保證系統(tǒng)的靈活性和控制性。其架構(gòu)如圖2所示。
圖2 架構(gòu)設(shè)計圖
(1)數(shù)據(jù)層。數(shù)據(jù)層包括三維城市空間信息服務(wù)平臺所需的所有數(shù)據(jù)類型及其存儲方式,是服務(wù)層與應(yīng)用層的數(shù)據(jù)基礎(chǔ)。
(2)驅(qū)動層。平臺采用SQL Server數(shù)據(jù)庫軟件,用以存儲和管理各種數(shù)據(jù)。圖形引擎方面使用OSG對三維圖形進(jìn)行渲染和顯示,為用戶提供一個真實、立體、交互式的虛擬仿真城市。隨著OSG的模塊和第三方附加庫不斷完善,OSG可高性能處理海量地理數(shù)據(jù)、多線程渲染場景圖形。
(3)應(yīng)用層。加載出三維場景圖形后,用戶可在平臺上對其進(jìn)行自由視角瀏覽、場景漫游、空間量算、視域分析等操作。
OSG使用已成為工業(yè)標(biāo)準(zhǔn)的OpenGL底層渲染API,并封裝了一系列功能模塊,主要應(yīng)用在三維圖形系統(tǒng)的開發(fā),并提供場景的組織及渲染的功能[7]。OSG可實時高效地繪制和控制由各種建模軟件建立的3D模型,并且具有操作與統(tǒng)計模型的功能。除了可以繪制場景中的物體外,OSG還有強大的粒子系統(tǒng)、陰影以及紋理材質(zhì)等支持一遍在程序中更逼真地展示物體。隨著越來越多人投入到OSG的開發(fā),OSG已在視覺仿真、電腦游戲、虛擬現(xiàn)實、科學(xué)可視化以及三維建模等諸多高性能圖形應(yīng)用領(lǐng)域得到廣泛應(yīng)用。
3.2.1 三維模型數(shù)據(jù)結(jié)構(gòu)
平臺加載的城市建筑物模型的數(shù)量巨大,而且建筑物模型一般比較復(fù)雜,包含很多頂點數(shù)據(jù),繪制時有較多的三角網(wǎng)數(shù)量。所以需要將數(shù)據(jù)分塊組織,模型數(shù)據(jù)分塊之后形成瓦片數(shù)據(jù),并組成瓦片金字塔結(jié)構(gòu)。在金字塔結(jié)構(gòu)中,每一層對應(yīng)相關(guān)的比例尺的數(shù)據(jù)集,金字塔頂端對應(yīng)的比例尺最小,最末端對應(yīng)的比例尺最大[8]。瓦片數(shù)據(jù)主要是對該瓦片的基本信息以及瓦片中模型數(shù)據(jù)等的地理信息進(jìn)行記錄,主要包括瓦片的寬度、數(shù)據(jù)使用的坐標(biāo)系統(tǒng)、比例尺、瓦片圖層信息等。當(dāng)用戶加載城市模型時,平臺會根據(jù)視點內(nèi)建筑物模型數(shù)據(jù)覆蓋的范圍,返回對應(yīng)的瓦片數(shù)據(jù)??纱蟠鬁p少系統(tǒng)響應(yīng)時間,提升平臺的流暢度。
3.2.2 三維模型可視化方法
在本文研究設(shè)計的平臺中,基于OSG的三維模型可視化方法有以下幾點:
(1)LOD技術(shù)。LOD簡單來說,就是物體的表現(xiàn)形式分為簡單與詳細(xì),若以簡單形式來表達(dá)物體,可以使渲染圖形的過程效率提高。當(dāng)瀏覽視角接近觀察物體時,該物體用詳細(xì)的細(xì)節(jié)表達(dá);當(dāng)瀏覽視角遠(yuǎn)離觀察物體時,該物體使用簡化模型表達(dá)。因為距離產(chǎn)生的視覺效果,簡化后的物體模型與詳細(xì)展示的物體模型基本一致,如此一來,可以獲得比較理想的渲染加速效果,從而提高幀率。
(2)分頁細(xì)節(jié)層次節(jié)點??捎糜趯崿F(xiàn)動態(tài)分頁加載,根據(jù)視點來加載所需要的數(shù)據(jù)。三維城市的信息數(shù)據(jù)是龐大的,但通過分頁細(xì)節(jié)層次節(jié)點,可以把模型進(jìn)行預(yù)處理,在渲染場景時,再根據(jù)需要來實時加載需要的數(shù)據(jù),同時卸載無用的數(shù)據(jù)。
操作系統(tǒng):Microsoft Windows 10
系統(tǒng)類型:64位操作系統(tǒng)
開發(fā)平臺:Microsoft Visual Studio 2015+OSG開發(fā)語言:C++
圖3 數(shù)據(jù)來源
模型數(shù)據(jù):模型數(shù)據(jù)主要包括建筑物、公共設(shè)施等城市中的常見物體。
量算功能作為平臺的基礎(chǔ)功能,可以實現(xiàn)測量三維場景中地物的高度與面積。點擊三維場景中的任意一點作為起始點,移動鼠標(biāo)向上移動,兩點高度會隨之實時顯示,再次點擊確認(rèn)最終高度。高度量算結(jié)果如圖4所示。面積量算功能可以實現(xiàn)在三維場景中自定義多邊形,并計算其所圍成的區(qū)域面積。高度量算結(jié)果如圖5所示。
圖4 高度量算
圖5 面積量算
為了加強用戶對三維城市模型的真實感體驗,場景漫游功能使用戶可以第一人稱步行的效果瀏覽城市模型。步行方式是沿著用戶自定義選擇的多個點所生成的路徑進(jìn)行飛行漫游,并且可調(diào)節(jié)飛行高度與速度,且具有飛行路徑錄制和回調(diào)功能。
在三維場景中選取任意點,系統(tǒng)會將各點關(guān)聯(lián),并進(jìn)行插值,最終形成一條瀏覽路徑,屏幕視點會隨著該路徑移動,營造行走在城市中的觀感。場景漫游效果如圖6所示。
圖6 場景漫游
空間通視作為城市規(guī)劃中經(jīng)常需要解決的問題,對城市整體的景觀布局起到了關(guān)鍵作用。常見的視域分析分為兩種情況,一是判定任意選取的兩點之間的可見性,二是判定空間任意一點的可視范圍。可視區(qū)域顯示為綠色,不可視區(qū)域顯示為紅色。效果如圖7、圖8所示。
視域分析是城市整體規(guī)劃中的重要一環(huán),充分運用該平臺的視域分析功能,可在三維場景下,以模擬現(xiàn)實的方式進(jìn)行任意視點的可見性判定與最佳可視范圍,并根據(jù)判定過程中顯示的經(jīng)緯度與高度等空間屬性,可以幫助用戶在規(guī)劃設(shè)計中得到最佳方案。
圖7 可見性判定
圖8 可視域分析
現(xiàn)代城市多為高樓林立,且密集度高,可能導(dǎo)致人們的采光權(quán)被侵害,所以,在初期建設(shè)規(guī)劃中,采用平臺的日照分析功能可以分析得出建筑物之間的最佳距離,保障人們享受到充足的日照。日照分析功能可以模擬出在晝間的不同時段,任意被選中的建筑物所受的日照影響所產(chǎn)生的陰影,并可以清晰地判斷周圍建筑物在該時段采光被影響的情況。
日照分析效果如圖9所示,框選出所需要的建筑,可以變換時間點觀察選中建筑物所受日照產(chǎn)生的光影,以及判別在該時段下是否影響了周圍建筑物。
圖9 日照分析
OSG作為一個免費開源、高性能的三維渲染引擎,并且支持眾多第三方工具軟件,不僅降低了三維城市空間信息服務(wù)平臺的開發(fā)成本,還使平臺具有良好的擴(kuò)展性。本文設(shè)計開發(fā)的三維城市空間信息服務(wù)平臺,著重展現(xiàn)了三維城市的立體與互動的真實性,突破了二維信息數(shù)據(jù)下的傳統(tǒng)服務(wù)平臺所帶來的局限性。為普通用戶帶來更流暢、更真實的城市地圖服務(wù),也為城市規(guī)劃者提供更準(zhǔn)確的地形地貌信息。在互聯(lián)網(wǎng)發(fā)達(dá)的今天,建設(shè)數(shù)字城市是城市發(fā)展的關(guān)鍵,而開發(fā)一個功能強大、環(huán)境真實、易于操作的三維城市信息服務(wù)平臺是必不可少的一環(huán)。