張 濤,王赟杰
(吉林建筑大學 測繪與勘查工程學院,吉林 長春 130118)
“數字地球”的概念首次是由美國前總統于1998年1月21日提出的,這在當時引起了各國專家和學者的強烈關注[1]。這是一種新的認識世界的方式,經過十幾年的演化,數字技術也日趨成熟。世界各國也紛紛加入數字建設的大軍中,其中不乏日本、加拿大、美國等國家。三維建模技術在20世紀80年代被引進我國,至今已經30多年,對于城市規劃也陸續提出了“數字城市”、“綠色城市”、“智慧城市”等與三維城市建設相關的規劃概念。在2000年的時候,國家測繪局在全國局長干部會議上,明確提出測繪局系統在以后的主要階段任務就是要構建“數字中國”框架[2]。隨著城市信息的數字化進程的到來,相關技術不斷成熟與發展,城市規劃和管理的方式逐步轉向了數字化和智能化[3]。通過三維GIS技術輔助城市規劃與設計將逐漸成了規劃行業發展的一個新的趨勢[4]。
三維城市建模并不是一個簡單的運用軟件建立一個三維模型的過程,而是將城市周圍的人文環境相結合,在規劃解決可能出現的問題,對城市發展、規劃與設計提供參考指導作用。隨著智慧城市平臺在GIS上的應用和發展,城市三維建模也慢慢向精細化、參數化發展。City Engine作為一款與GIS最為緊密聯系的城市三維規則建模軟件,通過對City Engine建模的規則化,可以最合理化地利用好現有GIS平臺上的數據,快速、高效、準確地建立城市三維模型,節約項目資金和時間。
CGA規則的使用方式和語法與Java、C++極其相像,其語法也許在剛開始看到的時候比較頭疼,但是由于它的函數種類比較清楚直接,運用入門還是比較簡單的,CGA規則不用考慮代碼中的Tab或空格等,所以各個語句可以存在于一行,但是從可讀性的方面考慮,每個函數的后面會加上回車符,這樣多個語言就不會被放置在一行,但一個語句放置在多行還是可以的。每一個規則語言都需要一個其實規則來觸發好進行規則的運行。在City Engine中,已生成的模型或地塊矢量模型為三維模型的起點,以下是其代碼:
Lot--> Building
在以上的規則中Lot為模型的初始觸發函數名稱,“-->”標志了由Lot模型向Building模型運動的方向。和手工建模相比,基于CGA規則的三維模型批量建模方法優點在于,GIS數據中的屬性數據能夠被其調用,進行批量的自動建模[5]。CGA主要運用六種規則函數語言,函數的使用場景和規則如圖1所示。
圖1 CGA函數功能幾釋義
1)矢量數據獲取。地圖矢量數據一般是指所構建區域范圍的底面信息數據,一般包括建筑底面數據、道路數據、綠化區數據等,不同種類區域的屬性數據被存儲在不同的底圖地圖矢量數據,但在本文涉及的設計中,只需要調用小區的建筑底面數據,以此作為參考進行建模。建筑底面數據包括建筑模型的屬性信息,比如樓層的數量、高度等。矢量數據的編輯修改工作在第三方軟件ArcMap中進行,對建筑物數據進行提取和處理,結果如圖2。
圖2 建筑地圖數據
2)貼圖紋理數據。紋理貼圖數據是指在規則建模中用于對建筑的外觀紋理進行貼圖的圖片數據,也是影響著整個建筑效果的重要因素。紋理圖片在較大的場景中往往數量較多且用途復雜,所以,對紋理數據的分類、命名與儲存也是提高建模效率的重要點。在本文中,主要建筑物的數據來源于小區,因此,需要去實地對小區的建筑外觀進行照相,采集建筑的四面圖片,為下文建筑建模的貼紋理進行數據的準備。
3)模型數據。當我們在建模過程中發現有些模型會被一直用到時候,那這個時候就需要模型數據來減少工作量,比如經過細化后的一些建筑物模型和植物模型。通過導入模型數據可以避免一些的不必要的多余勞動,需要特別注意收集的植物模型有林地、草地等,通過這些來改善模型綠化的視覺效果。如圖3所示。
圖3 植物模型
本文主要運用了單一式建筑建模,單一式建筑是指建筑模型較為統一的建筑類型,只要定義好一棟建筑的規則就可以適用于相同類型的建筑,適用于小區等建筑風格統一的批量建模,運用上文提到的函數進行建筑物的模型編寫。選取典型的分割,貼圖函數運用如下:
1)分割。
XifrontTu3Side
XifrontTuFloor-->
split(y){0.5*susheloufloorHeight:XifrontTu3Side|0.5*susheloufloorHeight:XifrontTuFloorWin}
//對凸出面樓層XifrontTuFloor進行分割,生成墻XifrontTu3Side和帶窗戶的部分
2)貼圖。
XifrontTuFloorWindow-->
Window //貼入窗戶圖片
對于道路規則而言,也是利用相應的規則,對其進行編寫。但是由于道路本身需要大量的紋理以及路燈、井蓋等多種要素,處理起來十分復雜,而且City Engine里面對于道路的處理是直接導入道路數據,然后自動生成道路的屬性及規劃,因此,為了簡化對道路的處理,在編寫規劃的時候,盡量表達簡單直觀即可,在這里對道路處理制作簡要編寫即可。
由于考慮到道路數據在獲取是以面要素獲取的,而City Engine對于道路中心線導入,然后進行道路參數的設置,從而調整street、sidewalk、crossing、junction、junctionEntry各自的參數,因此綜合考慮對道路規則進行簡單的處理。在對道路建模的同時就運用到了之前收集的街道紋理及路燈和行道樹的模型,這里以初始規則Street為入口執行:
#道路建模
Street-->
texture("zhugandao.jpg")
tileUV(0,10,'1)
//生成的道路形狀中行車道的初始規則為Street,以此規則作為入口執行,對行車道進行貼圖。
在本文示例中的建筑面積和綠化面積相當,這里簡化了對綠地的建模流程,只做了綠地建模的示范和對綠地上的樹木模型進行隨機的分配,其中草地建模如下:
#對草坪進行建模
Qita-->
setupProjection(0,scope.xz,2,2)
texture("Grass.jpg")
projectUV(0)
當所有的圖層按照相同的方法賦予規則以后,整個完整的場景建模就完成了,具體效果圖如圖4所示。
(a)局部圖
(b)場景構建效果
當我們對其建模結束之后,將其進行發布,使其三維效果能被更多的用戶進行感受和分享。在本文中,選用將場景進行WebScene的導出如圖5。
圖5 WebScene中的場景
在三維場景的建模過程中,基于City Engine軟件通過將重復的工作整合到規則代碼中,并應用規則,在多區域和大范圍的場景中得到應用從而生成建筑和道路等模型,大量重復的手工建模被避免。City Engine對多種格式數據的兼容和批量建模的優勢使其在三維建模方面得到了很好的運用。
在對City Engine的學習和運中中會發現,盡管我國使用City Engine進行城市建模的運用已經進行了大規模的展開,但是在這方面的資料研究和整理還沒有被系統地整理完善。
本文對與City Engine的研究過程中通過對City Engine的理解發現運用其構建的三維模型可以輸出為通用格式,并可以依據這個優勢,三維建模的研究在不久的將來或者就是現在可以廣泛應用于城市規劃設計、城市管理、建筑設計等方方面面。
[ID:009702]