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