程良勇,李南江
(1. 天津市勘察院,天津 300191; 2. 星際空間(天津)科技發展有限公司,天津 300384)
三維數字城市通過虛擬現實技術和地理信息技術精確表達城市空間形態、布局、色彩、天際輪廓等重要信息,利用其強大的空間數據組織、管理與空間分析能力為用戶提供信息查詢、空間分析、信息統計、數據挖掘等功能技術服務。隨著計算機技術和網絡通信技術的不斷成熟與發展,以及各專業領域業務需求的提升,三維數字城市逐漸從單機走向了網絡Web前端。由于其空間數據庫的海量特性,以及計算機存儲、網絡帶寬等硬件資源限制,需要從軟件、數據庫層次突破技術瓶頸來解決此問題。
近年來,三維數字城市建設發展迅速,但由于受硬件的限制,海量高精度模型的大范圍應用一直是網絡三維數字城市應用的一個瓶頸。LOD是解決三維高精細模型數據瀏覽和應用的基本方法,如何自動構建低級別的LOD模型,是LOD模型庫構建的關鍵。模型結構的簡化算法比較成熟,已有算法基本思路是重構模型的三角面,但模型面重構會引起模型紋理坐標的變化,導致紋理錯亂,因此,已有算法難以真正應用于貼附紋理的三維數字城市模型中。目前,國內外比較知名的軟件如Skyline、CityMaker等,僅對模型的紋理進行自動壓縮生成低級別的LOD紋理,并沒有減少模型的三角面數,導致海量數據量減少有限。
本文提出三維模型自適應面刪除簡化法和地形單面片生成法相結合的技術路線實現高精度三維模型面簡化LOD模型庫的自動建庫,模型和紋理同時進行簡化和壓縮,在同等三維數字城市場景效果前提條件下,最大程度地節省計算機硬件資源,可解決海量三維數字城市高精度模型網絡大范圍瀏覽和應用問題。本文優化后的三維模型自適應面刪除簡化法可以根據設置條件自動計算域值并刪除三角面,同時由于沒有對模型結構重構,紋理不會發生錯亂,可以自動生成模型面簡化的可用LOD模型庫。同時,采用構建單面片模型生成法自動構建最低級別地形LOD模型庫。該方法是將地形場景通過分塊、正視截圖并自動生成單面片模型,可將數十萬面的地形模型直接生成只有一個四邊形的單面片模型,在保證視覺效果的同時,大幅度減少地形模型的三角面和紋理數量[1-4]。
模型自適應面刪除簡化算法根據LOD模型不同級別的要求,設定簡化條件并自動計算域值,降低級別模型,進行自動簡化。算法流程如圖1所示[5-11]。
詳細流程步驟如下:
(1) 讀取模型點信息。遍歷讀取模型的所有頂點,將頂點按次序存儲于隊列中,同時按照頂點數據和屬性一一對應的關系,將法線坐標、紋理坐標、顏色坐標也按次序存儲于隊列中。
(2) 根據模型自身特點自適應計算刪除條件。
(3) 逐一獲取每個頂點,判斷每個頂點的類型,判斷準則是依據該頂點與相鄰頂點、該頂點與鄰邊之間的空間關系,計算頂點類型和影響代價值,判斷是否刪除。
(4) 從代價值小的頂點及對應的屬性數據開始刪除,并重新計算相鄰頂點的類型和代價值,直至沒有符合條件的頂點可以刪除[12]。
定義:特征邊是指共享該邊的兩個三角形法線之間的夾角大于特征角的邊。
由于模型的每一個頂點刪除后對模型的影響不同,本文定義頂點對模型的影響代價值為α,α代表該點刪除后對模型影響程度的大小。在刪除模型頂點時,優先刪除影響代價值較小的點,具體過程如下:
(1) 普通頂點影響代價值計算方法[13-15]。普通頂點是指不在特征邊的頂點,如圖2中A點。該點所在的面起伏不大,接近為平面,定義該頂點到接近平面的平均平面的距離d為刪除后對模型的影響代價值α。平均平面為這些相鄰三角面所有法線的平均法線方向對應的面。
假設頂點為O(x,y,z),求出的平均平面P的法線為normal(xn,yn,zn),該面上某點為point(xp,yp,zp),則當前點O的影響代價值α即為當前點到P的距離d,計算方法如下
(1)
(2)
d=|xn×(x-xp)+yn×(y-yp)+zn×(z-zp)|
(3)
式中,count為當前點O相鄰三角形的個數;TNi為當前點O相鄰的第i個三角形的法線向量;CPi為當前點O相鄰的第i個三角形的中心點坐標;TAi為當前點O相鄰的第i個三角形的面積。
(2) 特征點影響代價值計算方法。特征點是指邊線點和角點,如圖3所示。
該頂點到該頂點被刪除后所形成的新邊的距離d為刪除后對模型的影響代價值α。當前點O(x,y,z)的相鄰兩邊點分別為A(x0,y0,z0)、B(x1,y1,z1),則O的影響代價值α即為點O到空間直線AB的距離d,計算方法如下
(4)
式中
(5)
(6)
(7)
m=-ax0-by0-cz0
本文刪除法中需計算出模型所有頂點的影響代價值α,并按照升序排序存儲到列表Array中。
(3) LOD各級模型頂點刪除自適應閾值計算[16-17]。經過大量模型面刪除模型簡化試驗,推導出本文模型面刪除簡化方法效果最佳的頂點刪除閾值自適應的計算方法
(8)
式中,P為模型的面刪除簡化比例(即需要刪除的面占總面數的百分比);Lmax為LOD模型庫構建的最大層級數,本文Lmax=4,即建筑模型共分為4個層級;L為當前需要簡化的LOD的層級;Fn為當前簡化模型的總面數,最大值不超過100萬。
根據模型的面刪除比例P計算模型的刪除閾值為
α=Array(CArray×P)
(9)
式中,α為模型頂點刪除的自適應閾值;Array為上文中提到的模型頂點影響代價值α按照升序排列生成的列表;CArray為Array列表的元素總數目,即模型頂點數目。
針對地塊的特點,本文提出了模型快照的方法,將復雜的模型地塊模型生成單紋理單面片模型。具體為采用視點定位截圖對完整的地塊地形模型自動進行定位定范圍截圖,生成地塊地形模型的正視圖片,將正視圖片自動制作成單面片的圖片地形模型。由于經正射投影的物體具有大小尺寸不變的效果特點,因此生成正視圖片時采用正射投影,即將標準分塊的模型數據的世界坐標通過視點變換、投影變換和視口變換等系統矩陣投影變換操作最終正射投影到二維屏幕窗口。
(1) 視點變換。將模型的實際坐標值(x0,y0,z0)經過視點矩陣變換視點坐標系下的坐標值(x1,y1,z1),即
(10)
式中,描述攝像機向右的方向向量(rx,ry,rz)=(1,0,0);描述攝像機向前的方向向量(lx,ly,lz)=(0,0,-1);描述攝像機垂直向上的方向向量(ux,uy,uz)=(0,1,0);攝像機的位置向量為(px,py,pz)。
(2) 正射投影變換。視點攝像機的正射投影矩陣相當于設置了一個正射的長方體正射投影,通過投影變換將場景對象投影到投影體的鏡頭平面上,假設得到的投影坐標為(x2,y2,z2),即
(11)
其中,正射投影視域體是包含被投影物體的長方形體,它由兩對三維坐標點進行描述,即(l,b,n)→(r,t,f)。
(3) 視口變換。經過視口矩陣變換,將投影坐標(x2,y2,z2)最終投影為二維屏幕窗口坐標(x3,y3,z3),即
(12)
視口矩陣主要是由視口的范圍決定的,設視口的起點為(xv,yv),寬和高分別為w和h,視域體的遠近裁減面的z值分別為f和n,x軸向右為正,y軸向下為正。
(4) 單面片模型定點定位快照截圖生成單面片模型原理。通過上述的模型正射投影到屏幕窗口的方法將場景模型正射、完整地投影到給定的二維窗口上,同時利用相機截圖的方法,將模型在二維窗口上的投影生成二維圖片,將圖片自動進行壓縮處理,并由程序自動構建單面片的場景模型。
得到模型在場景中投影的正視紋理圖片后,利用程序生成單面片模型,并將紋理貼圖,生成最終的單面片地塊場景模型。單塊地塊模型運用單面片自動生成法后的前后效果對比如圖4所示,(a)為簡化前的地塊三維模型,面數為6.2萬,(b)為生成的單面片地塊模型。
本文將自適應面刪除簡化法和地形單面片生成法應用于天津市網絡三維數字城市項目試驗,采用具有面簡化效果的LOD模型庫來實現高精度海量數據的Web瀏覽與應用問題。
本文將建筑模型分為L0、L1、L2、L3四級,采用自適應面刪除簡化法計算所有頂點對模型的影響。根據硬件的配置條件和經驗值計算出系統能夠流暢運行的總面數,根據該面數確定模型LOD庫各級別的簡化參數。簡化參數對不同面數的模型設置不同的簡化域值,然后對模型進行自動面簡化處理。
本文在以上簡化參數的基礎上進行簡化處理,效果比較如圖5所示。其中(a)為簡化前數據,(b)為本文方法簡化后的數據,在滿足視覺效果和應用需求的同時,場景中建筑模型的面數明顯減少。簡化前后效果對比見表1。

表1 建筑簡化前后對比
采用地形單面片生成法來實現地塊模型的LOD模型庫生成,大范圍三維數字城市場景模型運用單面片生成法前后效果對比如圖6所示。(a)為原始地形數據,(b)為應用單面片模型生成法后的地形數據,簡化前后效果對比見表2。

表2 地形簡化前后對比
采用地形單面片生成法后,在保證視覺效果的同時,極大地簡化了高精細地形的三角面數和紋理數據量,解決了特大三維數字城市建設中高精細三維場景模型大范圍瀏覽與應用的難題。
本文將面刪除簡化法和單面片生成法應用于天津市三維數字城市網絡三維系統的建設,結合紋理壓縮技術,結果如圖7所示。將原始每平方千米500 MB、200萬面的數據,最低級別LOD模型壓縮簡化為每平方千米60 MB、40萬面,滿足了三維數據在100 Mbps帶寬網絡環境下瀏覽和應用的要求。
本文利用三維模型自適應面刪除簡化法和地形模型單面片生成法相結合實現了城市高精度三維模型自動構建LOD模型庫,解決了目前只能手工生成面簡化的LOD模型的窘境,有效解決了網絡海量高精度三維模型大范圍應用問題。但是,本文提出的面刪除簡化算法如果參數設置不當,可能導致有些模型存在明顯的面鏤空的現象,因此需要根據經驗和模型數據的實際情況制定相應的自適應簡化系數方案。下一步將進一步改進面刪除簡化算法和地塊單面片生成法,并將其推廣應用到更大的范圍和更復雜地形的三維數字城市系統建設和應用中。