馬光明 王聰華 李麗寧
摘 ?要: 本文以西藏民族大學(xué)校園三維場景制作的過程為例,使用CityEngine對學(xué)校中建筑物進(jìn)行快速批量建模,并依托CityEngine規(guī)則建模與ArcGIS無縫銜接的優(yōu)點(diǎn),在WebScene中,進(jìn)行虛擬三維展示。應(yīng)用CityEngine軟件的優(yōu)勢對校園建筑建模及三維大場景制作過程進(jìn)行了闡述,用實(shí)踐的結(jié)果論證了技術(shù)方案的可行性。
關(guān)鍵詞: CityEngine;虛擬校園;規(guī)則建模;WebScene
中圖分類號: TP319 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.04.009
本文著錄格式:馬光明,王聰華,李麗寧. 基于CityEngine三維虛擬校園場景設(shè)計與實(shí)現(xiàn)[J]. 軟件,2019,40(4):4650
【Abstract】: Taking the process of making 3D scenes on the campus of Tibet University for Nationalities as an example, this paper uses CityEngine to quickly model the buildings in the school, and based on the advantages of CityEngine rule modeling and ArcGIS seamlessly, in the WebScene, virtual three-dimensional display. Based on the advantages of CityEngine software, the campus building modeling and three-dimensional large-scale production process were expounded. The feasibility of the technical solution was demonstrated by the practical results.
【Key words】: CityEngine; Virtual campus; Rule modeling; WebScene
0 ?引言
最近幾十年,數(shù)字城市快速發(fā)展,三維建模的需求進(jìn)一步擴(kuò)大,很多大學(xué)和科研機(jī)構(gòu)也展開了三維數(shù)字城市建模技術(shù)和軟件開發(fā)工作。目前市場上主要流行的大型三維建模軟件有3ds Max、Skyline、SketchUp、Autodesk、CityMaker、LightWave3D等,這些軟件大多均為勞動密集型手工建模,需要耗費(fèi)大量的時間和精力,后期修改也比較麻煩。近年來,一種新的建模技術(shù)——CityEngine基于規(guī)則的批量建模技術(shù)逐漸走進(jìn)人們的視野[1-5]。
作為一款高效的建模軟件,CityEngine可以通過使用二維數(shù)據(jù)快速創(chuàng)建三維場景,從而可以進(jìn)行高效的規(guī)劃設(shè)計。對ArcGIS軟件的完美支持,也使得很多已經(jīng)擁有基礎(chǔ)GIS數(shù)據(jù)的用戶,可以無需轉(zhuǎn)換數(shù)據(jù)即可快速實(shí)現(xiàn)三維建模,減少了系統(tǒng)再投入的成本,也縮短了三維GIS系統(tǒng)的建設(shè)周期。
作為城市規(guī)劃的縮影,把三維虛擬技術(shù)應(yīng)用到學(xué)校校園,建立虛擬的三維學(xué)校校園模型,不僅能夠從多個角度逼真地展示校園建筑,還能將餐飲、商店、醫(yī)療、交通、校門、運(yùn)動、銀行、通訊、住宿、停車場等多個熱點(diǎn)位置的信息定位在一張圖上,讓使用者可一圖盡享學(xué)習(xí)和生活的便利,實(shí)現(xiàn)真正意義上校園數(shù)字化和信息化。本文應(yīng)用CityEngine對西藏民族大學(xué)進(jìn)行建模處理,重點(diǎn)對學(xué)校地形、道路、建筑物、植被及水域的創(chuàng)建和校園場景的發(fā)布所出現(xiàn)的問題進(jìn)行解決、說明,最終對校園整體場景進(jìn)行真實(shí)展示。
1 ?CityEngine建模特點(diǎn)
1.1 ?基于規(guī)則批量生成模型
CGA(computer generated architecture)規(guī)則是CityEngine特有的程序設(shè)計語言。建模時可直接拖放規(guī)則文件(*.cga)到需要建模的二維數(shù)據(jù)上,三維模型便會自動的批量生成。比如說一些道路、規(guī)則建筑、植物等模型,都可以用此方法批量生成,大大提高了建模的速度。
規(guī)則建模最大的優(yōu)點(diǎn)就是規(guī)則的復(fù)用,對于同種類型的模型,只需修改不同參數(shù),就可以建出不同的模型,增加了場景的多樣性。比如說圖1的建筑模型,一二三層都是用同一種代碼生成的,只是修改了部分參數(shù),就生成了不同規(guī)則的窗戶樣式。除此之外,使用規(guī)則建模還可以讀取二維的地形數(shù)據(jù),規(guī)則文件可以鏈接到這些數(shù)據(jù),根據(jù)不同的二維數(shù)據(jù),生成不同種類樣式的模型,省去了錄入?yún)?shù)的繁瑣。但對于大多數(shù)人來說,為了建模而學(xué)習(xí)一種新的語言,會增加軟件的使用難度,同時對于CGA規(guī)則,反復(fù)迭代編寫有時會讓人無從下手,很難掌握[5-10]。
1.2 “所見即所得”的規(guī)劃設(shè)計
規(guī)則建模中,通過規(guī)則文件定義的屬性參數(shù),都可以在屬性面板中調(diào)整參數(shù)來改變模型的外觀,比如說道路的寬度,植被的密度,貼圖的地址,房頂?shù)姆N類,甚至外部導(dǎo)入模型也可根據(jù)規(guī)則進(jìn)行 ?替換。
1.3 ?與ArcGIS一體化集成
作為一款ESRI公司(美國環(huán)境系統(tǒng)研究公司)一款城市三維建模與規(guī)劃設(shè)計軟件,它與同一家公司的ArcGIS軟件有很好的兼容,CityEngine既可以快速使用ArcMap導(dǎo)出的GIS數(shù)據(jù)進(jìn)行規(guī)制建模,也可以對原有的三維模型數(shù)據(jù)進(jìn)行編輯和更新。同時,也可將CityEngine建成的三維模型導(dǎo)入到ArcGIS中,進(jìn)一步完成空間的分析和3D web scene的發(fā)布。
1.4 ?支持標(biāo)準(zhǔn)三維格式
CityEngine支持多種格式的三維數(shù)據(jù),開放的數(shù)據(jù)格式使得CityEngineg更大程度的包容來自第三方平臺的三維模型,也可以為第三方平臺提供基礎(chǔ)的模型支持。但值得注意,CityEngine雖然支持多種格式的三維數(shù)據(jù)格式,但當(dāng)三維數(shù)據(jù)導(dǎo)入時,對數(shù)據(jù)處理不當(dāng),也會出現(xiàn)貼圖錯位,模型跑偏的情況。
1.5 ?一鍵發(fā)布WebScene和OnLine分享
CityEngine支持將場景一鍵打包生成WebScene場景包,可以使用游覽器查看做好的三維場景,也可將場景包上傳到ArcGIS Online中去,與其他人分享自己建模成果。WebScene還支持多角度查看場景和查看一天之內(nèi)不同時段的場景,具有卷簾對比不同時期場景模型變化等功能,大大提升了觀眾的觀感。值得一提的是,場景發(fā)布到WebScene時,會對場景中的模型自動進(jìn)行烘培,使得在WebScene上的展示會十分流暢。
2 ?利用CityEngine對三維虛擬校園的實(shí)現(xiàn)
利用CityEngine建設(shè)三維場景主要包括數(shù)據(jù)準(zhǔn)備、地形生成、模型創(chuàng)建、WebScene場景生成幾個步驟,如圖2所示。
2.1 ?數(shù)據(jù)準(zhǔn)備
這里準(zhǔn)備的數(shù)據(jù),除了場景的二維數(shù)據(jù)及其屬性信息,還得準(zhǔn)備場景的基礎(chǔ)地圖影像數(shù)據(jù)(包括地形數(shù)據(jù)DEM和地形貼圖數(shù)據(jù)DOM)和模型材質(zhì)貼圖數(shù)據(jù)及校園標(biāo)志性建筑物模型。
首先,二維地形數(shù)據(jù)通過ArcMap軟件把校園整體的CAD數(shù)據(jù)轉(zhuǎn)化為文件地理數(shù)據(jù)庫GDB。由于校園CAD數(shù)據(jù)除地形信息外,沒有其他有用信息,這里需要在把數(shù)據(jù)導(dǎo)入到文件地理數(shù)據(jù)庫的同時把屬性信息添加到文件中,例如建筑樓層的高度信息,樓層信息,屋頂信息等,方便在規(guī)則建模中使用,這里也要去除CAD數(shù)據(jù)那些非建模屬性,以減少數(shù)據(jù)大小。其次,準(zhǔn)備影像數(shù)據(jù)和地形數(shù)據(jù),這里數(shù)據(jù)推薦使用tif格式影像,需采用投影坐標(biāo),高程數(shù)據(jù)需保存成黑白漸變的單波段的影像數(shù)據(jù)。最后對于第三方生成的三維模型數(shù)據(jù)的準(zhǔn)備,目前CityEngine對于*.obj和*.dae格式的數(shù)據(jù)兼容性最好,為使得模型在場景中完美展示,建議選用*.obj和*.dae格式的數(shù)據(jù)作為導(dǎo)入的三維模型素材[10-15]。
在上述過程中,需要注意以下三點(diǎn)。第一,需要注意CityEngine對圖片的要求是行列4000*4000以內(nèi),在4000到8000之間會自動重采樣,超過8000將不會顯示,所以在地形影像數(shù)據(jù)的選取上一般選取尺寸4000*4000以內(nèi)的為最佳。第二,CityEngine支持ArcGIS所支持的任意投影坐標(biāo)系,但不支持地理坐標(biāo)數(shù)據(jù)的建模,所以這里對于矢量數(shù)據(jù)和柵格數(shù)據(jù),我選擇Xian_1980_3_Degree_GK_CM_108E作為我的投影坐標(biāo)系。第三,對于三維模型數(shù)據(jù)的準(zhǔn)備,需要注意貼圖尺寸要滿足“2N2N”,尺寸不得超過512*512,模型的軸心位于模型中心底部,正面指向X軸的正方向,這樣再利用規(guī)則導(dǎo)入模型時,模型才不會出現(xiàn)偏移和貼圖的錯位的情況。
在上述過程中,需要注意以下三點(diǎn)。第一,需要注意CityEngine對圖片的要求是行列4000*4000以內(nèi),在4000到8000之間會自動重采樣,超過8000將不會顯示,所以在地形影像數(shù)據(jù)的選取上一般選取尺寸4000*4000以內(nèi)的為最佳。第二,CityEngine支持ArcGIS所支持的任意投影坐標(biāo)系,但不支持地理坐標(biāo)數(shù)據(jù)的建模,所以這里對于矢量數(shù)據(jù)和柵格數(shù)據(jù),我選擇Xian_1980_3_Degree_GK_CM_108E作為我的投影坐標(biāo)系。第三,對于三維模型數(shù)據(jù)的準(zhǔn)備,需要注意貼圖尺寸要滿足“2N2N”,尺寸不得超過512*512,模型的軸心位于模型中心底部,正面指向X軸的正方向,這樣再利用規(guī)則導(dǎo)入模型時,模型才不會出現(xiàn)偏移和貼圖的錯位的情況。
2.2 ?地形的生成
數(shù)據(jù)工作準(zhǔn)備完成后,就開始場景的創(chuàng)建,第一步就是地形的生成。地形是三維場景的基礎(chǔ),地形的導(dǎo)入和生成可以更加有效的展示場景的真實(shí) ?地貌。
對于地形的生成,主要的問題是在于高程數(shù)據(jù)的處理上。對于西藏民族大學(xué)來說,雖然從谷歌地圖觀察學(xué)校數(shù)據(jù)沒有明顯的地形起伏學(xué),但在實(shí)驗(yàn)樓和水池兩處的地形是低于整個平面,如果只有影像數(shù)據(jù)而沒有高程數(shù)據(jù)的話,低于水平面的建筑將會被影像數(shù)據(jù)遮擋,所以需要通過ArcMap和Photoshop兩款軟件對高程數(shù)據(jù)進(jìn)行處理。這里需要注意的是在生成地形時,為了使得高程數(shù)據(jù)與影像數(shù)據(jù)可以很好的貼合,這里需要使用影像數(shù)據(jù)作為底板來生成,導(dǎo)出時應(yīng)導(dǎo)出黑白漸變的單波段tif格式數(shù)據(jù)作為高程數(shù)據(jù)來使用。圖3為制作好的地形數(shù)據(jù)。
2.3 ?道路的建立
當(dāng)?shù)缆范S數(shù)據(jù)導(dǎo)入到CityEngine后,會根據(jù)矢量數(shù)據(jù)中道路及人行道的寬度屬性快速生成道路形狀,然后直接拖放規(guī)則文件應(yīng)用到道路后,會直接生成道路模型,如圖4所示。
道路數(shù)據(jù)規(guī)則建模,如果道路二維數(shù)據(jù)不夠完善,經(jīng)常會出現(xiàn)路面斷裂的情況,所以在導(dǎo)入道路二維數(shù)據(jù)數(shù)據(jù)時,必須不斷調(diào)整道路寬度參數(shù),以保證路面不出現(xiàn)缺口。
對于道路的創(chuàng)建,需要注意兩個問題。首先道路規(guī)則是對于Street(道路)、Sidewalk(人行道)、Crossing(十字路口)、Junction(道路結(jié)合處)和JunctionEntry(連接入口)五個部分分別進(jìn)行賦予規(guī)則,為了處理簡單,這里只對Street、Sidewalk和Crossing進(jìn)行規(guī)則賦予,以減少規(guī)則的復(fù)雜程度。同時可以在處理Sidewalk的規(guī)則時添加路燈模型,來增加模型的效果。其次,在調(diào)成道路參數(shù)時,應(yīng)在二維模型下調(diào)節(jié),如果在三維模型下調(diào)節(jié)的話,軟件會根據(jù)參數(shù)的變化不斷進(jìn)行三維建模,界面會出現(xiàn)卡頓現(xiàn)象,大大影響建模效率。相比之下,3ds MAX制作道路模型不僅工程量大,出來的效果也達(dá)不到預(yù)期效果。核心規(guī)則如下。
2.4 ?建筑物的創(chuàng)建
建筑物包括標(biāo)志性建筑物和一般建筑物。對于西藏民族大學(xué)來說,大部分建筑物都沒有一定的共性,屬于標(biāo)志性建筑物。同時用規(guī)則建出的三維建筑模型,相比于3dMAX建出的三維模型,不僅建模效果達(dá)不到預(yù)期效果,建模的效率也沒有明顯提高,復(fù)雜程度反而會大大提高。所以對于學(xué)校場景建筑物的創(chuàng)建,這里采用采用替換函數(shù)(i),用第三方三維模型替換二維數(shù)據(jù)中的建筑物底面形狀數(shù)據(jù),核心代碼如下:
在第三方模型數(shù)據(jù)導(dǎo)入CityEngine時需要注意兩個方面。第一,對于第三方導(dǎo)入的三維模型,模型名稱和貼圖名稱必須唯一,并且要采用字母,不要用漢字來為模型起名稱。如果名稱不唯一的情況下導(dǎo)入三維數(shù)據(jù),很可能會出現(xiàn)模型貼圖錯位和模型偏移等情況,為后續(xù)建模帶來不必要的工程量。第二,CityEngine軟件對于三維數(shù)據(jù)要求Max9以下生成的*obj格式的數(shù)據(jù),高版本生成的模型需要通過程序降低版本,才能在軟件中正常顯示圖6為校園場景的建筑物模型。
2.5 ?綠化植被創(chuàng)建
綠化植被創(chuàng)建主要涉及三個方面,地皮草地的創(chuàng)建,植物散點(diǎn)的生成以及植物模型的替換。
這里利用rand隨機(jī)函數(shù)生成不同大小的植被模型,再利用rint(geometry.area/TreeDensity)來為不同面積大小的地塊分配不同數(shù)量的植被密度,最后使用scatter散點(diǎn)生成函數(shù)來分配散點(diǎn)。這里需要注意,當(dāng)使用了scatter函數(shù)后,就不能為面使用texture函數(shù)為面賦予材質(zhì)。所以這里為了兼顧草地材質(zhì)和散點(diǎn)的分部,需要把地皮擠出后,分為不同的面,其中上平面賦予散點(diǎn),下平面和側(cè)平面賦予草坪材質(zhì),完成綠化地塊的規(guī)則編寫,核心規(guī)則如下。
2.6 ?水域動態(tài)效果
最后,對于西藏民族大學(xué),校園中的水池,CityEngine還提供了動態(tài)水效果的制作,能夠最大限度的還原水域的波浪效果,達(dá)到身臨其境的效果。規(guī)則主要是通過set函數(shù)為水域地塊賦予watermaterial__ waterparams_2_5材質(zhì),其中后兩個參數(shù)表示波浪最高和最低的高差,以及水的流速,將模型導(dǎo)出到WebScene中的效果如圖8所示。
2.7 ?WebScene的發(fā)布
在CityEngine工程場景中包含了許多個圖層、要素和屬性信息,分開導(dǎo)出會很容易使得數(shù)據(jù)的丟失和坐標(biāo)位置的偏移。因此,在CityEngine中一般會將整個場景進(jìn)行打包,打包成3DWebScene場景包后再進(jìn)行導(dǎo)出操作。
導(dǎo)出的場景包既可以部署到IIS中進(jìn)行發(fā)布,也可以導(dǎo)出到ESRI公司另一款軟件ArcGIS Online中。作為一款面向全球用戶的公共GIS軟件,ArcGIS Online可以為學(xué)校場景提供更加安全,可配置的GIS服務(wù)。圖9為西藏民族大學(xué)校園的場景展示。
3 ?總結(jié)
在計算機(jī)技術(shù)、三維可視化技術(shù)與虛擬現(xiàn)實(shí)技術(shù)迅猛發(fā)展的今天,CityEngine作為一款集城市三維建模與規(guī)劃設(shè)計的軟件,由于它利用規(guī)則快速建模的特點(diǎn),正被廣泛的應(yīng)用于數(shù)字城市、城市規(guī)劃、軌道交通、電力、管線、建筑、國防、仿真、游戲開發(fā)和電影制作等多個領(lǐng)域。
在這次學(xué)校校園三維場景建設(shè)的過程中,解決了學(xué)校地形、道路、建筑物、植被及水域的創(chuàng)建和校園場景的發(fā)布中所產(chǎn)生的一些難點(diǎn)問題,最終對西藏民族大學(xué)校園整體場景進(jìn)行真實(shí)展示。充分利用現(xiàn)代成熟的信息技術(shù)和信息化實(shí)踐經(jīng)驗(yàn),以數(shù)字化信息為基礎(chǔ),以計算機(jī)技術(shù)和網(wǎng)絡(luò)系統(tǒng)為依托,采用總體規(guī)劃、分布實(shí)施的策略,創(chuàng)建一個可以從多個角度展示現(xiàn)實(shí)校園建筑、道路、綠化、文化場所等內(nèi)外部的環(huán)境和形象。這不僅為學(xué)校廣大師生和社會公眾提供了良好的校園向?qū)Ш蜕钪改希瑫r也為相關(guān)職能部門提供了方便的可視化的管理,這將成為學(xué)校又一靚麗的數(shù)據(jù)名片。
作為西藏民族高校,西藏民族大學(xué)是西藏和平解放后黨中央在祖國內(nèi)地為西藏創(chuàng)辦的第一所高等學(xué)校,肩負(fù)著自己獨(dú)有的歷史使命?,F(xiàn)在正值西藏民族大學(xué)建校60周年,借此次時機(jī),西藏民族大學(xué)三維虛擬校園向人們展示一個全新的西藏高校。
參考文獻(xiàn)
[1] 牟乃夏. CityEngine城市三維建模[M]. 北京: 測繪出版社, 2016.
[2] ArcGIS10地理信息系統(tǒng)教程[M]. 北京: 測繪出版社, 2012.
[3] 張海燕. 基于CityEngine的Web三維智慧城市開發(fā)[J]. 北京測繪, 2018, 32(08): 995-999.
[4] 王媛媛. 基于CityEngine規(guī)則技術(shù)批量構(gòu)建三維模型分析[J]. 水利規(guī)劃與設(shè)計, 2018(09): 84-86+168.
[5] 謝衍憶, 黃良平, 陳元增, 等. 基于CityEngine的城市三維快速建模方法及應(yīng)用[J]. 地理空間信息, 2016, 14(02): 39-40+62+8.
[6] 李志榮. 城市三維批量建模及Web3D可視化研究[D]. 東華理工大學(xué), 2018.
[7] 周亞雄. 基于CityEngine三維虛擬小區(qū)建模與分析[J]. 信息與電腦(理論版), 2017(20): 117-121.
[8] 倪永, 陳榮國. 主流云GIS平臺軟件應(yīng)用分析[J]. 測繪科學(xué)技術(shù)學(xué)報, 2013, 30(02): 177-181.
[9] 張昊寧. 城市兒童游戲空間規(guī)劃[D]. 北京林業(yè)大學(xué), 2011.
[10] 王雷, 丁華. 基于OSGEarth 的大型三維空戰(zhàn)場景的搭建[J]. 軟件, 2016, 37(01): 114-116.
[11] 劉尚武, 魏巍, 矯宇鵬. 三維模型的規(guī)格化表示與存儲方法研究[J]. 軟件, 2016, 37(4): 29-31.
[12] 董默, 趙若晗, 周志尊, 等. 醫(yī)學(xué)圖像三維重建系統(tǒng)設(shè)計與應(yīng)用[J]. 軟件, 2018, 39(1): 87-90.
[13] 何雋, 孔繁偉. 三維仿真動畫角色綁定與動畫技巧探究[J]. 軟件, 2018, 39(4): 92-96.
[14] 艾嘉豪, 朱大明. 無人機(jī)傾斜攝影測量在三維建模中的應(yīng)用[J]. 軟件, 2018, 39(6): 192-195.
[15] 張數(shù), 楊德宏. 數(shù)字近景攝影測量的二維影像三維建模的關(guān)鍵技術(shù)應(yīng)用[J]. 軟件, 2018, 39(2): 133-138.