佟家興 王雪冰 趙文博 于 航 張 昕
(1.天津市測繪院有限公司,天津 300381;2.百度在線網(wǎng)絡技術(北京)有限公司,北京 100193;3.黑龍江省測繪科學研究所,黑龍江 哈爾濱 150081)
近年來,隨著國家全面推進實景三維中國的建設,虛擬地理環(huán)境(Virtual Geographic Environment,VGE)也進入到高速發(fā)展期。目前,虛擬地理環(huán)境所使用的實景模型與數(shù)字孿生應用之間仍存在著阻礙,虛擬地理環(huán)境還有很多潛在的應用價值[1]。在虛擬地理環(huán)境中,生成數(shù)字表面模型的技術是指通過對虛擬地理環(huán)境的現(xiàn)實模擬,借助分析建筑容積率、執(zhí)行建筑分割等對數(shù)字表面模型的數(shù)據(jù)進行探索[2-4]。該技術打破了實景模型“具形不具用”的瓶頸,為虛擬地理環(huán)境和實景三維中國的建設發(fā)展提供技術參考。
本研究采用深度圖來反演數(shù)字高程,并構建數(shù)字表面模型,該方法能有效解決利用射線法在虛擬地理環(huán)境中生成數(shù)字表面模型存在的速度慢、精度差、易受模型異構影響等問題,從而獲取三維場景中的數(shù)字高程和紋理信息。該方法已成功應用于天津市的實景三維建設中,具有較高的實用價值。
虛擬地理環(huán)境是一種通過虛擬環(huán)境和地理學來研究地理環(huán)境現(xiàn)象與規(guī)律的數(shù)字技術[5]。該技術通過對地理信息科學和計算機虛擬環(huán)境進行融合,從數(shù)字層面上還原了真實世界的物理實體和空間的關系,成為數(shù)字地球、數(shù)字孿生城市等概念中的重要支撐?,F(xiàn)實世界中的物理實體是虛擬地理環(huán)境中研究的一個重要內(nèi)容,而將物理實體投射到虛擬環(huán)境中的可靠載體就是數(shù)字三維模型[6-7]。數(shù)字三維模型是一種通過借助相關存儲介質來存儲自身信息,并在計算機系統(tǒng)中能穩(wěn)定還原的數(shù)字載體,數(shù)字表面模型就是其中一種。
數(shù)字虛擬技術是實現(xiàn)虛擬地理環(huán)境構建的重要支撐,其借助計算機圖形學理論,將抽象數(shù)字三維模型還原為具有真實空間觀感的圖形,并將其繪制于屏幕上的過程。在眾多的數(shù)字虛擬技術平臺中,以OpenGL框架為代表的三維圖形開源代碼的應用范圍最廣,也是本研究所采用的虛擬地理環(huán)境框架。
OpenGL框架的數(shù)字虛擬化過程是通過渲染管線來實現(xiàn)的。傳入渲染管線的數(shù)字三維模型經(jīng)圖元裝配、光柵化以及測試混合等處理后,結果會在計算機屏幕上呈現(xiàn)。其在執(zhí)行管線流水作業(yè)的同時,也會對數(shù)字三維模型的各個頂點進行相應的空間變換,從而將原始的空間地理坐標變換為指定長寬的屏幕像素坐標。
在虛擬地理環(huán)境中展示的數(shù)字三維模型是一種多源異構的數(shù)據(jù)集合,在物理實體數(shù)據(jù)的外業(yè)采集和內(nèi)業(yè)處理過程中,為了確保數(shù)據(jù)在存儲介質中的高可傳遞性,往往會采取離散式的數(shù)據(jù)存儲方式,但該方式破壞了模型的整體性。為了解決這一問題,本研究提出一種在虛擬地理環(huán)境中構建數(shù)字表面模型的方法,該方法能有效消弭三維模型多源異構數(shù)據(jù)間的差異,并為后續(xù)研究提供便利。
本研究提出的數(shù)字表面模型構建方法的處理步驟如下。①設定觀察相機拍攝虛擬地理環(huán)境的俯視圖。記錄并生成虛擬地理環(huán)境中三維模型的俯視紋理圖片和深度圖片。②由空間變換關系可反算出頂點的高程信息。將生成的二維地理平面信息和一維高程信息合成為每個頂點的空間三維地理坐標。③重新定義頂點的索引關系。由二維紋理信息和各個頂點的空間三維地理坐標來構建指定區(qū)域的數(shù)字表面模型,并輸出處理結果。其中,在虛擬地理環(huán)境中,由屏上的二維圖形可反算出每個頂點的真實地理坐標,即數(shù)字虛擬技術的逆變換。只要建立起數(shù)字三維模型在渲染管線中所經(jīng)歷的各種空間變換的數(shù)學關系,即可得到該數(shù)學關系的反算公式。
在虛擬地理環(huán)境中,數(shù)字三維模型從圖元裝配到被直觀地展現(xiàn)給觀察者的過程中主要進行了4種空間變換,如圖1所示。
圖1 頂點的空間變換過程
數(shù)字三維模型的創(chuàng)建一般是在模型空間中進行的。創(chuàng)建完成的數(shù)字三維模型要執(zhí)行空間變換,并將自身坐標進行換算,從而添加到虛擬地理環(huán)境中。觀察者借助相機在相機空間中所觀察到的世界空間中的數(shù)字三維模型也經(jīng)歷了一次空間變換。至此,已執(zhí)行的兩次變換都是空間剛體變換,之后執(zhí)行的投影變換和屏幕變換是為了將三維模型轉換為二維圖形,從而在計算機屏幕上顯示出來,所執(zhí)行的是一種非剛體空間變換。
為了能真實地描述理環(huán)境中的頂點在數(shù)字虛擬化過程中發(fā)生的變換,本研究引入模型坐標系、世界坐標系、相機坐標系以及屏幕空間坐標系等5個坐標系,分別對模型空間、世界空間、相機空間、投影空間以及屏幕空間進行表示[8]。
模型空間可用模型坐標系來表示,用于描述模型各個部件相對創(chuàng)建原點的位置關系,是一個局部相對坐標系。世界空間可用世界坐標系來表示,模型坐標系向世界坐標系的變換僅包含旋轉和平移,故可用模型矩陣M來表示這種線性變換,見式(1)。
式中:R為模型坐標系各個坐標軸相對于世界坐標系坐標軸的旋轉因子構成的矩陣;t為模型坐標系相對于世界坐標系的位置所構成的向量。
同理,世界坐標系轉換為相機坐標系的線性變換可用相機矩陣V來表示,該矩陣所包含的變換僅有旋轉和平移。
投影空間是相機空間向屏幕空間進行變換時的中間空間,相機空間向投影空間的變換可用投影矩陣P來表示,本研究使用正交投影生成數(shù)字表面模型,正交投影的投影矩陣見式(2)。
式中:r為投影視錐體中心與右側面之間的距離;t為投影視錐體中心與上頂面之間的距離;n為投影中心與視錐體近平面之間的距離;f為投影中心與視錐體遠平面之間的距離。
屏幕空間以計算機屏幕的左上角為原點,水平向右為x軸,垂直向下為y軸。投影空間中的坐標映射到屏幕空間的變換用視圖矩陣W來表示。
令模型頂點在世界坐標系中的坐標為X,其投影到屏幕空間上的坐標為x,計算公式見式(3)。
式中:坐標向量X、x均為齊次形式。
由屏幕空間中的像素點可推導出其世界坐標,見式(4)。
在公式(4)的基礎上,將深度信息與像素坐標進行結合,即可還原帶有深度信息的屏幕空間坐標,進而實現(xiàn)在虛擬地理環(huán)境中對模型世界坐標的反算。
深度圖是在虛擬地理環(huán)境中,通過設定相機的相關參數(shù)來記錄相機到模型每個頂點的距離,并最終生成的一種特定影像??蓪⑸疃葓D的生成過程理解為現(xiàn)實世界中通過激光掃描獲得的特殊圖像數(shù)據(jù)。這種數(shù)據(jù)與觀察者的觀察視角保持高度一致,所以能在技術層面上消弭不同模型之間的數(shù)據(jù)差異,這也為生成整體化的數(shù)字表面模型提供了理論支持。
本研究選用的數(shù)字高程模型(Digital Elevation Model,DEM)是一種對虛擬地理環(huán)境三維模型表面進行離散數(shù)學表達的方式,是某一區(qū)域中模型表面相對虛擬地理環(huán)境高程基準的三維向量,其數(shù)據(jù)結構見式(5)。
式中:Ei為模型表面某一離散點i的三維向量;(Xi,Yi)為該點的平面坐標;Zi為模型表面相對虛擬地理環(huán)境高程基準的高程;n為離散點的個數(shù)。
深度圖的生成過程是歸一化坐標轉換為像素灰度的過程[9]。假設三維模型表面的某一個頂點為P,則在模型坐標投影到投影空間后,會對投影空間內(nèi)該點的深度值進行歸一化處理,從而得到歸一化的深度值d。而深度圖一般以灰度值的形式進行存儲,將深度值d映射到[0,255]的值域中,即可得到該點在深度圖中的灰度值p。
將歸一化的深度值d到深度圖灰度值p的映射過程定義為f(d),則深度圖灰度值反演歸一化深度值的映射公式見式(6)。
將反算的歸一化深度值d代入到公式(4)中,即可得到深度圖像素點對應的模型頂點在世界坐標系中對應的三維向量。
對城市級的深度圖和紋理圖生成而言,普通的計算機難以對這些生成數(shù)據(jù)進行連續(xù)處理。為解決這一問題,本研究提出將生成的紋理圖映射為數(shù)字正射影像,將深度圖及由深度圖反演出的高程信息映射為數(shù)字高程影像的中間數(shù)據(jù)生成策略。
為了使生成的同尺寸、同分辨率的紋理圖和深度圖攜帶虛擬地理環(huán)境中的地理信息,要從這兩張圖像中提取出高度信息h和寬度信息w,并從深度圖反演信息中獲取左上角點地理坐標Xit和右下角點地理坐標信息Xrb,通過處理得到6個地理仿射變換參數(shù)。本研究所定義的地理仿射變換見式(7)。
式中:x、y為指定圖像點的像素坐標;X、Y為指定圖像點的二維地理坐標;g1、g4為圖像沿x、y方向的地理像素分辨率;g2、g3為旋轉參數(shù),二者在本研究中均置為0;g5、g6為圖像左上角點的像素中心的地理坐標。
生成的數(shù)字正射影像和數(shù)字高程影像是具有實際應用價值的測繪產(chǎn)品數(shù)據(jù),能在一定精度下進行各種地理信息分析,可為后續(xù)的數(shù)字表面模型重構提供數(shù)據(jù)支持。
本研究所述的數(shù)字高程模型中存儲的是均勻的網(wǎng)格式三維頂點信息,為了能將存儲的三維頂點信息還原為數(shù)字表面模型,筆者提出面向均勻網(wǎng)格的頂點索引重構方法。該方法能將正方形網(wǎng)格切分為同向均勻的三角網(wǎng),從而通過索引重構對原始正方形網(wǎng)格中的各個頂點進行銜接,如圖2所示。
圖2 數(shù)字高程模型均勻網(wǎng)格及其構建的三角網(wǎng)
頂點索引重構算法的操作步驟如下。①選定數(shù)字高程網(wǎng)格的第一行作為頂點索引重構算法的初始生成行。②掃描數(shù)字高程網(wǎng)格某一生成行的各個頂點并進行記錄,按“左上、左下、右上、右下”的順序重新組織頂點三角面片的序列。③判斷接續(xù)生成行的三角面片生成序列中是否包含上一生成行的頂點信息,若包含則執(zhí)行頂點合并,否則繼續(xù)執(zhí)行。④循環(huán)執(zhí)行步驟②和③,直至掃描到最后一個生成行,并結束算法的運行。
頂點索引重構算法中的頂點合并操作規(guī)則如下。重復頂點可保留序號較小的頂點、非重復頂點按“左上、左下、右上、右下”的順序重新排列頂點序號。其操作過程如圖3所示。
圖3 頂點合并操作
重構頂點索引后,生成的數(shù)字表面模型符合圖形學的拓撲關系和顯示要求,如圖4所示。
圖4 基于頂點索引重構的數(shù)字表面模型
頂點索引重構后,數(shù)字表面模型已具備基礎的三維幾何關系,為了能進一步豐富數(shù)字表面模型的紋理特征信息,要結合頂點索引,并依據(jù)數(shù)字正射影像的框標來定義每個頂點的紋理數(shù)組,從而完成頂點的紋理映射操作。將執(zhí)行紋理映射后的數(shù)字表面模型顯示在虛擬地理環(huán)境中,如圖5所示。
圖5 映射紋理后的數(shù)字表面模型
采用本研究所述的方法,在天津市中心城區(qū)范圍內(nèi)構建了多張數(shù)字高程模型和數(shù)字正射影像,并生成市域范圍內(nèi)的數(shù)字表面模型。試驗結果證明,該方法能有效解決虛擬地理環(huán)境速度慢、精度差和易受模型異構影響的問題,生成的數(shù)字表面模型能應用于實際工程生產(chǎn)中,且生成的數(shù)字高程模型等中間數(shù)據(jù)也可為虛擬地理環(huán)境中的水淹、限高等的分析提供有效的數(shù)據(jù)支撐。最后,利用頂點索引重構及紋理映射方法所生成的數(shù)字表面模型,其仍與數(shù)字正射影像及深度圖的圖像分辨率有強關聯(lián)性,在后續(xù)的研究中可采用頂點簡化策略來優(yōu)化數(shù)字表面模型的頂點個數(shù)和存儲占用。