甘宗平
(1.中山市地質環境監測站,廣東 中山 528400)
3DMax模型在Skyline球面空間中的優化展示技術研究
甘宗平1
(1.中山市地質環境監測站,廣東 中山 528400)

對大范圍3DMax三維模型在Skyline球面空間展示時出現位置偏差的原因進行了研究,并提出了基于坐標變換優化展示的技術原理和實施方案,最后對比了中山市原始三維模型和優化后的三維模型在Skyline球面空間中的展示效果。結果表明,這種優化展示技術能有效解決位置偏差問題。
三維模型;Skyline;優化展示;位置偏差
三維數字城市建設中需要制作、發布和展示大范圍的三維模型。為保證三維模型的展示效果與實際一致,通常是先在3DMax的世界坐標系下制作三維模型,每個模型都生成坐標信息表和定位點,并將定位點轉換到特定的經緯度坐標系下,然后導入到Skyline球面空間中進行發布與展示。當范圍較小或展示空間為平面時,這種方式可以完美地展示三維模型;然而,大范圍的三維地理模型在球面空間中展示時會因為模型坐標信息和定位點仍然是平面坐標而與地球曲面產生位置偏差[1]。
1.1 產生原因
在3DMax中,制圖坐標系是世界坐標系,三維模型的制作在1∶500的平面坐標系地形圖基礎上進行,所以模型在3DMax里面會保持連接性,不存在接邊問題[2]。在3DMax中,模型的位置規定為模型的中心最低點,通常歸到3DMax世界坐標的零點。在將大范圍的三維模型導入Skyline球面空間時,系統只會將模型的定位點轉換為大地坐標系,而模型相對于定位點仍舊維持平面坐標系下的關系。因此,相鄰的大范圍三維模型在Skyline球面空間接邊時會出現位置偏差[3-5]。
比如在3DMax平面坐標中,A、P、B在同一條直線上,導入到Skyline平面空間依然維持在同一條直線上,不存在不接邊的問題,如圖1所示。但將同一套平面坐標的模型導入到球面坐標系中時,由于AP、PB在不同的模型中,模型的位置通常是模型的中心最低點,也就是O1、O2兩個點,這兩個點既是入庫后SHP點位置,也是模型位置。如圖2所示,模型入庫到球面坐標系中,坐標轉換只是對SHP點進行坐標轉換,而對于A、P、B三個點的數值沒有進行轉換,因此模型還是保持原來平面坐標系的狀態,不能保持原來的相接關系,從而出現偏差,如圖3所示。

圖1 3DMax模型導入Skyline平面空間中的效果

圖2 3DMax模型在Skyline球面空間中的示意圖

圖3 3DMax模型導入Skyline球面空間中的效果
1.2 垂向偏差分析
把地球作為球體,這種垂直方向的偏差稱為垂向偏差,其模型可以定義為:

式中,delta_h是垂向偏差值;R是地球半徑;dist是模型邊緣距模型定位點的距離。據此模型,距離定位點100~1 000 m區間內,垂向偏差(cm)的量化分析如圖4所示。

圖4 垂向偏差曲線
垂向偏差對跨度大、范圍廣的城市三維模型具有較大影響。由于是三維視角,垂向偏差無論大小都會使模型之間出現裂縫,影響三維模型的精確表達和視覺效果。
2.1 技術原理
根據§1.1中的分析,為了保證AP和PB兩個模型的連接性,應該對A、P、B點都進行坐標轉換,也可以理解為把模型“弧度”化,如圖5所示。

圖5 模型弧度化示意圖
為達到“弧度”化的目的,須將每個模型的坐標信息點和SHP一起轉換到大地坐標系下,這個過程通過常規的坐標轉換就可以實現。但是,Skyline是通過SHP點來定位的,三維模型定位時還存在著一個以SHP點為原點的站心直角坐標系,只有將大地坐標系下的所有模型坐標信息點都轉換到站心直角坐標系下才能保證模型接邊的一致性,才算實現了“弧度”化。
首先,構建如圖6 所示的站心地平坐標系:站心點的法線為z軸,子午線方向為x軸,y與x、z軸正交,指向正東方向[6-7]。
根據圖示,要將站心直角坐標軸x、y、z變換到與大地坐標系指向一致需要如下幾步:①z坐標軸反向。②繞y軸旋轉90°+B。③繞z軸旋轉-L。由此得出旋轉矩陣如下:

圖6 站心直角坐標系

站心直角坐標系原點在大地坐標系中的坐標為:

站心直角坐標系到大地坐標系的變換公式為:

由上式可得大地坐標系到站心直角坐標系的變換:

以上步驟可將大地直角坐標轉換到站心直角坐標,這樣大范圍的3DMax三維模型在Skyline球面平臺上就可以無縫展示。
2.2 解決方案
根據§2.1中的分析可知,模型進入Skyline球面坐標時,除了模型定位點SHP文件要進行坐標轉換之外,模型各個點也需要轉換,并統一到以定位點為原點的站心直角坐標系下。
首先從TerrainBuilder中確定Skyline的球面坐標系是WGS84的正球體坐標系,半徑為6 378 137 m;然后求出模型定位點轉換到大地坐標的坐標值,并以此作為站心原點,再根據式(4)和式(5)求出模型中各點從大地坐標系轉換到站心直角坐標系下的坐標,最后導出成果模型。
本文利用SAFE公司的FME軟件編寫相關程序,結合3DMax腳本實現具體轉換過程,得到3D模型平面轉球面的成果[8-9]。主要操作過程是在3DMax中導出模型各個點的ID以及對應的坐標值文本文件,然后利用FME對該文本里面的坐標點進行轉換,反算出球面坐標相對于定位點(站心直角坐標系)的相對坐標,然后再利用3DMax讀取轉換后的坐標點文件,并對模型進行轉換,保持紋理不發生變形。其轉換流程如圖7所示。

圖7 模型處理流程
中山市三維公共平臺制作、發布了中山市核心城區250 km2的3DMax建模數據。其原始模型導入到Skyline球面平臺上時,由于坐標系的不一致,在接邊的過程中產生了明顯的位置偏差,如圖8中的橫線所示。根據§2.2中的方案將模型優化后,原先的位置偏差完全消除,接邊位置一致連續,具有完整的顯示效果,如圖9所示。

圖8 原始3DMax模型在Skyline球面空間中的展示效果

圖9 優化后的3DMax模型在Skyline球面空間中的展示效果
本文針對大范圍城市3DMax三維模型在Skyline球面空間中展示時出現位置偏差的原因進行了分析,提出了通過批量坐標轉換的方式進行優化,并通過編程實現了這個過程。該方法在中山市三維公共平臺城市模型的優化過程中取得了良好效果,為其他城市大范圍的三維模型優化展示提供了參考。在目前國家大力推進數字三維公共服務平臺建設的過程中,為處理大范圍三維數據提供了行之有效的思路和方法。
[1] 趙子龍.基于3Ds Max的城市三維建模技術[J].價值工程,2013,4(135):184-185
[2] 謝俊瑩,朱劍云,王定良.基于Skyline三維地理信息系統的模型定位加載[J].浙江測繪,2010(4):45-46
[3] 宮巖.淺談數字城市三維模型數據檢查方法[J].北京測繪,2013(3):85-88
[4] 李道遠,李英成,肖金城.大范圍城市三維模型管理技術研究[J].測繪科學,2015,36(5):70-72
[5] 顧琰,郭容寰,汪旻琦,等.三維城市模型數據組織與管理方法研究[J].測繪科學,2011,36(1):215-217
[6] 凌震瑩.大地坐標系與站心地平直角坐標系的坐標轉換[J].聲學與電子工程,2009(96):31-34
[7] 崔永俊.空間直角坐標與大地坐標之間的變換方法研究[J].華北工業學院學報,2003(1):75-77
[8] 范沖,王東亮.基于FME的CAD數據坐標轉換工具開發及實現[J].測繪與空間地理信息,2014,37(4):10-13
[9] 鄒學海,楊敏,吳柏宣.AutoCAD平臺下基于.net實現坐標系統轉換[J].淮海工學院學報:自然科學版,2011(S1):110-111
P208
B
1672-4623(2016)06-0007-03
10.3969/j.issn.1672-4623.2016.06.002
甘宗平,碩士,高級工程師,注冊測繪師,主要從事地理信息系統開發與應用研究。
2016-03-10。
項目來源:國家自然科學基金資助項目(41431178)。