佟家興 王雪冰 趙文博 于 航 張 昕
(1.天津市測繪院有限公司,天津 300381;2.百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司,北京 100193;3.黑龍江省測繪科學(xué)研究所,黑龍江 哈爾濱 150081)
近年來,隨著國家全面推進(jìn)實景三維中國的建設(shè),虛擬地理環(huán)境(Virtual Geographic Environment,VGE)也進(jìn)入到高速發(fā)展期。目前,虛擬地理環(huán)境所使用的實景模型與數(shù)字孿生應(yīng)用之間仍存在著阻礙,虛擬地理環(huán)境還有很多潛在的應(yīng)用價值[1]。在虛擬地理環(huán)境中,生成數(shù)字表面模型的技術(shù)是指通過對虛擬地理環(huán)境的現(xiàn)實模擬,借助分析建筑容積率、執(zhí)行建筑分割等對數(shù)字表面模型的數(shù)據(jù)進(jìn)行探索[2-4]。該技術(shù)打破了實景模型“具形不具用”的瓶頸,為虛擬地理環(huán)境和實景三維中國的建設(shè)發(fā)展提供技術(shù)參考。
本研究采用深度圖來反演數(shù)字高程,并構(gòu)建數(shù)字表面模型,該方法能有效解決利用射線法在虛擬地理環(huán)境中生成數(shù)字表面模型存在的速度慢、精度差、易受模型異構(gòu)影響等問題,從而獲取三維場景中的數(shù)字高程和紋理信息。該方法已成功應(yīng)用于天津市的實景三維建設(shè)中,具有較高的實用價值。
虛擬地理環(huán)境是一種通過虛擬環(huán)境和地理學(xué)來研究地理環(huán)境現(xiàn)象與規(guī)律的數(shù)字技術(shù)[5]。該技術(shù)通過對地理信息科學(xué)和計算機虛擬環(huán)境進(jìn)行融合,從數(shù)字層面上還原了真實世界的物理實體和空間的關(guān)系,成為數(shù)字地球、數(shù)字孿生城市等概念中的重要支撐。現(xiàn)實世界中的物理實體是虛擬地理環(huán)境中研究的一個重要內(nèi)容,而將物理實體投射到虛擬環(huán)境中的可靠載體就是數(shù)字三維模型[6-7]。數(shù)字三維模型是一種通過借助相關(guān)存儲介質(zhì)來存儲自身信息,并在計算機系統(tǒng)中能穩(wěn)定還原的數(shù)字載體,數(shù)字表面模型就是其中一種。
數(shù)字虛擬技術(shù)是實現(xiàn)虛擬地理環(huán)境構(gòu)建的重要支撐,其借助計算機圖形學(xué)理論,將抽象數(shù)字三維模型還原為具有真實空間觀感的圖形,并將其繪制于屏幕上的過程。在眾多的數(shù)字虛擬技術(shù)平臺中,以O(shè)penGL框架為代表的三維圖形開源代碼的應(yīng)用范圍最廣,也是本研究所采用的虛擬地理環(huán)境框架。
OpenGL框架的數(shù)字虛擬化過程是通過渲染管線來實現(xiàn)的。傳入渲染管線的數(shù)字三維模型經(jīng)圖元裝配、光柵化以及測試混合等處理后,結(jié)果會在計算機屏幕上呈現(xiàn)。其在執(zhí)行管線流水作業(yè)的同時,也會對數(shù)字三維模型的各個頂點進(jìn)行相應(yīng)的空間變換,從而將原始的空間地理坐標(biāo)變換為指定長寬的屏幕像素坐標(biāo)。
在虛擬地理環(huán)境中展示的數(shù)字三維模型是一種多源異構(gòu)的數(shù)據(jù)集合,在物理實體數(shù)據(jù)的外業(yè)采集和內(nèi)業(yè)處理過程中,為了確保數(shù)據(jù)在存儲介質(zhì)中的高可傳遞性,往往會采取離散式的數(shù)據(jù)存儲方式,但該方式破壞了模型的整體性。為了解決這一問題,本研究提出一種在虛擬地理環(huán)境中構(gòu)建數(shù)字表面模型的方法,該方法能有效消弭三維模型多源異構(gòu)數(shù)據(jù)間的差異,并為后續(xù)研究提供便利。
本研究提出的數(shù)字表面模型構(gòu)建方法的處理步驟如下。①設(shè)定觀察相機拍攝虛擬地理環(huán)境的俯視圖。記錄并生成虛擬地理環(huán)境中三維模型的俯視紋理圖片和深度圖片。②由空間變換關(guān)系可反算出頂點的高程信息。將生成的二維地理平面信息和一維高程信息合成為每個頂點的空間三維地理坐標(biāo)。③重新定義頂點的索引關(guān)系。由二維紋理信息和各個頂點的空間三維地理坐標(biāo)來構(gòu)建指定區(qū)域的數(shù)字表面模型,并輸出處理結(jié)果。其中,在虛擬地理環(huán)境中,由屏上的二維圖形可反算出每個頂點的真實地理坐標(biāo),即數(shù)字虛擬技術(shù)的逆變換。只要建立起數(shù)字三維模型在渲染管線中所經(jīng)歷的各種空間變換的數(shù)學(xué)關(guān)系,即可得到該數(shù)學(xué)關(guān)系的反算公式。
在虛擬地理環(huán)境中,數(shù)字三維模型從圖元裝配到被直觀地展現(xiàn)給觀察者的過程中主要進(jìn)行了4種空間變換,如圖1所示。

圖1 頂點的空間變換過程
數(shù)字三維模型的創(chuàng)建一般是在模型空間中進(jìn)行的。創(chuàng)建完成的數(shù)字三維模型要執(zhí)行空間變換,并將自身坐標(biāo)進(jìn)行換算,從而添加到虛擬地理環(huán)境中。觀察者借助相機在相機空間中所觀察到的世界空間中的數(shù)字三維模型也經(jīng)歷了一次空間變換。至此,已執(zhí)行的兩次變換都是空間剛體變換,之后執(zhí)行的投影變換和屏幕變換是為了將三維模型轉(zhuǎn)換為二維圖形,從而在計算機屏幕上顯示出來,所執(zhí)行的是一種非剛體空間變換。
為了能真實地描述理環(huán)境中的頂點在數(shù)字虛擬化過程中發(fā)生的變換,本研究引入模型坐標(biāo)系、世界坐標(biāo)系、相機坐標(biāo)系以及屏幕空間坐標(biāo)系等5個坐標(biāo)系,分別對模型空間、世界空間、相機空間、投影空間以及屏幕空間進(jìn)行表示[8]。
模型空間可用模型坐標(biāo)系來表示,用于描述模型各個部件相對創(chuàng)建原點的位置關(guān)系,是一個局部相對坐標(biāo)系。世界空間可用世界坐標(biāo)系來表示,模型坐標(biāo)系向世界坐標(biāo)系的變換僅包含旋轉(zhuǎn)和平移,故可用模型矩陣M來表示這種線性變換,見式(1)。

式中:R為模型坐標(biāo)系各個坐標(biāo)軸相對于世界坐標(biāo)系坐標(biāo)軸的旋轉(zhuǎn)因子構(gòu)成的矩陣;t為模型坐標(biāo)系相對于世界坐標(biāo)系的位置所構(gòu)成的向量。
同理,世界坐標(biāo)系轉(zhuǎn)換為相機坐標(biāo)系的線性變換可用相機矩陣V來表示,該矩陣所包含的變換僅有旋轉(zhuǎn)和平移。
投影空間是相機空間向屏幕空間進(jìn)行變換時的中間空間,相機空間向投影空間的變換可用投影矩陣P來表示,本研究使用正交投影生成數(shù)字表面模型,正交投影的投影矩陣見式(2)。

式中:r為投影視錐體中心與右側(cè)面之間的距離;t為投影視錐體中心與上頂面之間的距離;n為投影中心與視錐體近平面之間的距離;f為投影中心與視錐體遠(yuǎn)平面之間的距離。
屏幕空間以計算機屏幕的左上角為原點,水平向右為x軸,垂直向下為y軸。投影空間中的坐標(biāo)映射到屏幕空間的變換用視圖矩陣W來表示。
令模型頂點在世界坐標(biāo)系中的坐標(biāo)為X,其投影到屏幕空間上的坐標(biāo)為x,計算公式見式(3)。

式中:坐標(biāo)向量X、x均為齊次形式。
由屏幕空間中的像素點可推導(dǎo)出其世界坐標(biāo),見式(4)。

在公式(4)的基礎(chǔ)上,將深度信息與像素坐標(biāo)進(jìn)行結(jié)合,即可還原帶有深度信息的屏幕空間坐標(biāo),進(jìn)而實現(xiàn)在虛擬地理環(huán)境中對模型世界坐標(biāo)的反算。
深度圖是在虛擬地理環(huán)境中,通過設(shè)定相機的相關(guān)參數(shù)來記錄相機到模型每個頂點的距離,并最終生成的一種特定影像。可將深度圖的生成過程理解為現(xiàn)實世界中通過激光掃描獲得的特殊圖像數(shù)據(jù)。這種數(shù)據(jù)與觀察者的觀察視角保持高度一致,所以能在技術(shù)層面上消弭不同模型之間的數(shù)據(jù)差異,這也為生成整體化的數(shù)字表面模型提供了理論支持。
本研究選用的數(shù)字高程模型(Digital Elevation Model,DEM)是一種對虛擬地理環(huán)境三維模型表面進(jìn)行離散數(shù)學(xué)表達(dá)的方式,是某一區(qū)域中模型表面相對虛擬地理環(huán)境高程基準(zhǔn)的三維向量,其數(shù)據(jù)結(jié)構(gòu)見式(5)。

式中:Ei為模型表面某一離散點i的三維向量;(Xi,Yi)為該點的平面坐標(biāo);Zi為模型表面相對虛擬地理環(huán)境高程基準(zhǔn)的高程;n為離散點的個數(shù)。
深度圖的生成過程是歸一化坐標(biāo)轉(zhuǎn)換為像素灰度的過程[9]。假設(shè)三維模型表面的某一個頂點為P,則在模型坐標(biāo)投影到投影空間后,會對投影空間內(nèi)該點的深度值進(jìn)行歸一化處理,從而得到歸一化的深度值d。而深度圖一般以灰度值的形式進(jìn)行存儲,將深度值d映射到[0,255]的值域中,即可得到該點在深度圖中的灰度值p。
將歸一化的深度值d到深度圖灰度值p的映射過程定義為f(d),則深度圖灰度值反演歸一化深度值的映射公式見式(6)。

將反算的歸一化深度值d代入到公式(4)中,即可得到深度圖像素點對應(yīng)的模型頂點在世界坐標(biāo)系中對應(yīng)的三維向量。
對城市級的深度圖和紋理圖生成而言,普通的計算機難以對這些生成數(shù)據(jù)進(jìn)行連續(xù)處理。為解決這一問題,本研究提出將生成的紋理圖映射為數(shù)字正射影像,將深度圖及由深度圖反演出的高程信息映射為數(shù)字高程影像的中間數(shù)據(jù)生成策略。
為了使生成的同尺寸、同分辨率的紋理圖和深度圖攜帶虛擬地理環(huán)境中的地理信息,要從這兩張圖像中提取出高度信息h和寬度信息w,并從深度圖反演信息中獲取左上角點地理坐標(biāo)Xit和右下角點地理坐標(biāo)信息Xrb,通過處理得到6個地理仿射變換參數(shù)。本研究所定義的地理仿射變換見式(7)。

式中:x、y為指定圖像點的像素坐標(biāo);X、Y為指定圖像點的二維地理坐標(biāo);g1、g4為圖像沿x、y方向的地理像素分辨率;g2、g3為旋轉(zhuǎn)參數(shù),二者在本研究中均置為0;g5、g6為圖像左上角點的像素中心的地理坐標(biāo)。
生成的數(shù)字正射影像和數(shù)字高程影像是具有實際應(yīng)用價值的測繪產(chǎn)品數(shù)據(jù),能在一定精度下進(jìn)行各種地理信息分析,可為后續(xù)的數(shù)字表面模型重構(gòu)提供數(shù)據(jù)支持。
本研究所述的數(shù)字高程模型中存儲的是均勻的網(wǎng)格式三維頂點信息,為了能將存儲的三維頂點信息還原為數(shù)字表面模型,筆者提出面向均勻網(wǎng)格的頂點索引重構(gòu)方法。該方法能將正方形網(wǎng)格切分為同向均勻的三角網(wǎng),從而通過索引重構(gòu)對原始正方形網(wǎng)格中的各個頂點進(jìn)行銜接,如圖2所示。

圖2 數(shù)字高程模型均勻網(wǎng)格及其構(gòu)建的三角網(wǎng)
頂點索引重構(gòu)算法的操作步驟如下。①選定數(shù)字高程網(wǎng)格的第一行作為頂點索引重構(gòu)算法的初始生成行。②掃描數(shù)字高程網(wǎng)格某一生成行的各個頂點并進(jìn)行記錄,按“左上、左下、右上、右下”的順序重新組織頂點三角面片的序列。③判斷接續(xù)生成行的三角面片生成序列中是否包含上一生成行的頂點信息,若包含則執(zhí)行頂點合并,否則繼續(xù)執(zhí)行。④循環(huán)執(zhí)行步驟②和③,直至掃描到最后一個生成行,并結(jié)束算法的運行。
頂點索引重構(gòu)算法中的頂點合并操作規(guī)則如下。重復(fù)頂點可保留序號較小的頂點、非重復(fù)頂點按“左上、左下、右上、右下”的順序重新排列頂點序號。其操作過程如圖3所示。

圖3 頂點合并操作
重構(gòu)頂點索引后,生成的數(shù)字表面模型符合圖形學(xué)的拓?fù)潢P(guān)系和顯示要求,如圖4所示。

圖4 基于頂點索引重構(gòu)的數(shù)字表面模型
頂點索引重構(gòu)后,數(shù)字表面模型已具備基礎(chǔ)的三維幾何關(guān)系,為了能進(jìn)一步豐富數(shù)字表面模型的紋理特征信息,要結(jié)合頂點索引,并依據(jù)數(shù)字正射影像的框標(biāo)來定義每個頂點的紋理數(shù)組,從而完成頂點的紋理映射操作。將執(zhí)行紋理映射后的數(shù)字表面模型顯示在虛擬地理環(huán)境中,如圖5所示。

圖5 映射紋理后的數(shù)字表面模型
采用本研究所述的方法,在天津市中心城區(qū)范圍內(nèi)構(gòu)建了多張數(shù)字高程模型和數(shù)字正射影像,并生成市域范圍內(nèi)的數(shù)字表面模型。試驗結(jié)果證明,該方法能有效解決虛擬地理環(huán)境速度慢、精度差和易受模型異構(gòu)影響的問題,生成的數(shù)字表面模型能應(yīng)用于實際工程生產(chǎn)中,且生成的數(shù)字高程模型等中間數(shù)據(jù)也可為虛擬地理環(huán)境中的水淹、限高等的分析提供有效的數(shù)據(jù)支撐。最后,利用頂點索引重構(gòu)及紋理映射方法所生成的數(shù)字表面模型,其仍與數(shù)字正射影像及深度圖的圖像分辨率有強關(guān)聯(lián)性,在后續(xù)的研究中可采用頂點簡化策略來優(yōu)化數(shù)字表面模型的頂點個數(shù)和存儲占用。