甘肅農(nóng)業(yè)大學(xué)資源與環(huán)境學(xué)院地理信息系統(tǒng)系 王 璐 朱小燕 谷中仁
基于CityEngine的校園三維模型建模研究
甘肅農(nóng)業(yè)大學(xué)資源與環(huán)境學(xué)院地理信息系統(tǒng)系 王 璐 朱小燕 谷中仁
基于CityEngine三維設(shè)計(jì)平臺(tái),以甘肅農(nóng)業(yè)大學(xué)為例,利用教學(xué)樓內(nèi)外部底面投影數(shù)據(jù),研究了CGA規(guī)則快速生成建筑物外部的基本流程,并進(jìn)一步實(shí)現(xiàn)了室內(nèi)的精細(xì)建模,從而快速高效的實(shí)現(xiàn)了校園三維可視化,體現(xiàn)了校園地理信息的一體化集成,為設(shè)計(jì)鮮活的三維校園提供了全新的手段和解決方案,擴(kuò)展了參數(shù)化建模的應(yīng)用領(lǐng)域。
CityEngine;三維數(shù)字校園;建模;CGA規(guī)則
如何以三維方式構(gòu)建和顯示真實(shí)地理世界的各種現(xiàn)象己成為當(dāng)今GIS發(fā)展的一個(gè)熱點(diǎn)議題,三維GIS應(yīng)運(yùn)而生。計(jì)算機(jī)科學(xué)、網(wǎng)絡(luò)和通訊技術(shù)的迅猛發(fā)展,加快了校園信息化建設(shè)的步伐,三維數(shù)字校園的建設(shè)已受到全國高校的熱捧。構(gòu)建精美又逼真的三維場景是三維數(shù)字校園的關(guān)鍵。傳統(tǒng)3D建模軟件(3DMax、CAD、Sketchup等)所采用的建模技術(shù)主要是手工建模,結(jié)果往往是較為靜態(tài)的、固化的模型。這種建模技術(shù)僅能用于立體視覺表達(dá),并不能滿足三維空間分析、屬性查詢等深層次的應(yīng)用與研究,不具備快速、批量地生成建筑物模型的特點(diǎn),導(dǎo)致資源的極大浪費(fèi),且建模周期長[1]。CityEngine是三維建模軟件中的新成員[4]。它是基于CGA規(guī)則快速批量生成三維模型,可利用GIS二維數(shù)據(jù)快速創(chuàng)建三維場景,并能高效的進(jìn)行三維規(guī)劃設(shè)計(jì),能與ArcGIS完美結(jié)合,提升了ArcGIS三維建模能力,縮短了建模周期[5]。
隨著城市化的迅速發(fā)展,建筑物的外觀越來越復(fù)雜,對模型精細(xì)程度的要求也就越高,成為當(dāng)前需解決的問題。目前,對于三維建模方法的研究已十分廣泛,但大都只是在闡述和探討建筑物外部模型的理論與方法,很少涉及到復(fù)雜建筑物內(nèi)部的精細(xì)建模,滿足不了用戶更高的需求[3]。因此,基于CityEngine三維建模的相關(guān)課題研究適應(yīng)了三維技術(shù)發(fā)展的趨勢,具有重要的理論和現(xiàn)實(shí)意義。
基于CityEngine的建模是通過編寫CGA規(guī)則激活當(dāng)前二維數(shù)據(jù)對象,驅(qū)動(dòng)生成三維模型。它提供交互、可視化的對象屬性參數(shù)接口設(shè)置面板,用戶僅需改變建筑的高度、樓層數(shù)等參數(shù)即可創(chuàng)造多樣化的模型。因此首先要了解CityEngine特有的CGA語言及其建模的基本過程。
2.1 CGA規(guī)則
CGA是一種獨(dú)特的編程語言,是計(jì)算機(jī)生成建(Computer Generated Architecture)的縮寫。它包含了一系列決定模型如何生成的CGA規(guī)則,是CityEngine最核心的一個(gè)功能。CGA規(guī)則建模的基本思想是定義規(guī)則,并反復(fù)優(yōu)化設(shè)計(jì)更多的模型細(xì)節(jié)[3]。當(dāng)一個(gè)CGA規(guī)則被賦予了一個(gè)shpae要素后,模型按照自定義的參數(shù)自動(dòng)生成?;贑GA規(guī)則建模的基本思路如圖1所示。
圖1 CGA規(guī)則建模示意圖
圖2 CityEngine三維建?;玖鞒?/p>
2.2 CGA規(guī)則常用命令
extrude(Height)拉伸
i(“**.obj”)替代模型
comp(z)切分函數(shù)
split(z)分割函數(shù)
2.3 CityEngine三維建模流程
將ArcGIS 產(chǎn)生的二維GIS數(shù)據(jù)導(dǎo)入CityEngine中,建立各地物模型,再對初步的模型進(jìn)行細(xì)節(jié)優(yōu)化、拉伸、形狀的調(diào)整及紋理貼圖等處理,最終實(shí)現(xiàn)三維校園場景的發(fā)布?;玖鞒倘鐖D2所示。
3.1 建筑物外部立面模型的建立
建筑物模型的創(chuàng)建是構(gòu)建三維校園場景的主要內(nèi)容,建模的質(zhì)量好壞直接影響到三維可視化的效果。其基本思路是首先定義建筑物的屬性,再用extrude函數(shù)按實(shí)際高度沿Y軸進(jìn)行拉伸,確定建筑物的總體框架。然后利用comp命令將建筑物進(jìn)行拆分,采用split分割函數(shù)進(jìn)行更為精細(xì)的剖分,最后用texture對細(xì)節(jié)對象進(jìn)行紋理貼圖。核心代碼如下:
//定義參數(shù)
attr Floor=5 //定義樓層數(shù)
attr Groundfloor_Height=5//建筑底層高度
attr Floor_Height=4 //樓層高度
Building_Height=Groundfloor_Height+Floor*Floor_He ight//建筑物高度
Lot-->
extrude(Building_Height) Building//建筑物體塊
Building -->
split(y){Groundfloor_Height:FVolume|{(Floor_Height):
FVolume1}*}
//建筑體塊創(chuàng)建與建筑立面、頂面拆分
FVolume-->
comp(f){side:floorside(comp.index)|top:topface }
//判別建筑立面
floorside(number)-->
case number==1:side
else:x
side-->split(x){~1.5:wall|{~4:tile }*|~1.5:wall}
效果如圖3所示。
圖3 甘肅農(nóng)業(yè)大學(xué)工學(xué)樓
3.2 建筑物室內(nèi)的精細(xì)建模
三維模型的創(chuàng)建不僅體現(xiàn)在外觀上,往往也要展現(xiàn)出室內(nèi)的真實(shí)畫面,室內(nèi)的精細(xì)建模對于延伸數(shù)字校園的應(yīng)用是不可缺少的環(huán)節(jié)。為實(shí)現(xiàn)三維數(shù)字校園系統(tǒng)的內(nèi)部查詢,能夠在建筑物室內(nèi)進(jìn)行漫游,以人的視角來觀看建筑物內(nèi)部的“真實(shí)”環(huán)境,需進(jìn)行內(nèi)部精細(xì)建模。以甘肅農(nóng)業(yè)大學(xué)3號(hào)教學(xué)樓為例,利用教學(xué)樓教室底部投影數(shù)據(jù),經(jīng)comp、split、extrude、NIL、texture等基本命令,構(gòu)建教室內(nèi)課桌、凳子、黑板及樓梯等內(nèi)部模型。通過創(chuàng)建一組規(guī)則集用于描述內(nèi)部各樓層的結(jié)構(gòu),再經(jīng)多次調(diào)用來創(chuàng)建相同或相似設(shè)計(jì)的多個(gè)樓層。核心代碼如下:
//對教室地面shape進(jìn)行拆分
bottomside-->
split(y){~1:wall|~10:kface|~1:wall|~2:platform}
//課桌、凳子的建模
kface-->
split(x){~0.2:wall|~3:seat|~1.5:wall|~6:seat |~1.5:wall|~3:seat|~0.2:wall}
seat-->
split(y){~1.5:Ldesk|{~1.5:desk}*|~1.5:Fdesk}
Fdesk-->
split(y){~1:wall|~0.8:Fd}
Fd-->
extrude(1)
comp(f){back:fback|bottom:bm }
fback-->
split(y){~1.5:TLeg|~0.5:Tpocket}
效果如圖4所示。
圖4 教室內(nèi)部模型
//樓梯的建模,使用遞歸函數(shù)創(chuàng)建樓梯臺(tái)階,核心代碼如下:
attr Fact = 0.85
attr Depth = 0.2
attr Stop =6
bside-->
extrude(0.20) X
comp(f){side:side(comp.index)|top:xc}
xc-->
case(scope.sx > Stop) :
s('Fact,'Fact,0)
center(xz)
alignScopeToGeometry(yUp, 0) extrude(Depth) X
comp(f){top:xc}
else:NIL
效果如圖5所示。
圖5 樓梯
CityEngine發(fā)布Web場景主要有兩種方式:①發(fā)布到ArcGIS Online云端進(jìn)行共享,直接通過 CityEngine Web查看器進(jìn)行瀏覽;②導(dǎo)出為CityEngine Web Scene格式,即.3ws文件,發(fā)布成功后作為本地資源,僅需在本地計(jì)算機(jī)上進(jìn)行相關(guān)配置即可瀏覽[6]。經(jīng)兩種方式發(fā)布Web場景后,用戶可方便的在瀏覽器中與三維場景交互,場景如圖6所示。
圖6 甘肅農(nóng)業(yè)大學(xué)校園場景
主要有以下功能:
①用戶可通過放大、縮小、旋轉(zhuǎn)、平移等操作改變視點(diǎn)來導(dǎo)航整個(gè)校園的全局或局部景觀,給人一種漫步在校園的真實(shí)感。
②通過鼠標(biāo)點(diǎn)擊某個(gè)建筑,可查詢顯示該建筑的元數(shù)據(jù)信息,如樓高、樓層、名稱等屬性,還可通過輸入興趣地物進(jìn)行查詢,實(shí)現(xiàn)動(dòng)態(tài)定位。
④通過校園三維虛擬化漫游,可虛擬瀏覽校園的各個(gè)角落,找到各教學(xué)樓、辦公樓等,更好的為廣大師生服務(wù)。
⑤實(shí)現(xiàn)校園光照調(diào)節(jié)的功能。利用季節(jié)和時(shí)間的變化模擬了校園三維場景不同時(shí)間的光照射入量,可通過設(shè)置工具進(jìn)行陽光的調(diào)節(jié),實(shí)現(xiàn)不同時(shí)間點(diǎn)的日光影響下校園三維景觀。
⑥可方便的進(jìn)行屏幕截屏。
以CityEngine為平臺(tái)的建模方式,在構(gòu)建三維模型方面具有簡單、快速而又美觀的特點(diǎn), 解決了校園場景的擴(kuò)建與重建問題,實(shí)現(xiàn)了模型場景的動(dòng)態(tài)展示功能及良好的交互和顯示功能,從而為廣大用戶提供更多的體驗(yàn)和服務(wù),增加對學(xué)校的了解?;贑ityEngine建模技術(shù)已越來越成熟,它的優(yōu)越性也將逐漸受到大眾的關(guān)注和認(rèn)可,有著更加廣闊的發(fā)展前景。
[1]張暉,劉超,李妍.基于 CityEngine 的建筑物三維建模技術(shù)研究[J].測繪通報(bào),2014,11:108-112.
[2]呂永來,李曉莉.基于CityEngine CGA的三維建筑建模研究[J].測繪,2013,7:91-94.
[3]韓東成,唐志敏,張守文.基于CityEngine與CGA規(guī)則構(gòu)建3D室外及室內(nèi)精細(xì)模型的研究[J].電子世界,2014(11).
[4]呂永來,李曉莉.基于CityEngine平臺(tái)的高速鐵路建模方法的研究與實(shí)現(xiàn)[J].測繪,2013,36(1):19-21.
[5]王俊偉,簡季,周云帆.?dāng)?shù)字校園應(yīng)用中CityEngine快速參數(shù)化三維建模研究[J].測繪,2014(4).
[6]陳科,胡海莉,等.基于ArcGISServer與CityEngine構(gòu)建的虛擬校園與校園地圖導(dǎo)航[J].中國科技投資,2014,A07:4-6.
朱小燕(1981—),碩士,甘肅農(nóng)業(yè)大學(xué)資源與環(huán)境學(xué)院講師,研究方向:GIS空間分析、系統(tǒng)開發(fā)。
甘肅農(nóng)業(yè)大學(xué)盛彤笙基金(編號(hào):GSAU-STS-1416)。
王璐(1993—),女,甘肅白銀人,大學(xué)本科,現(xiàn)就讀于甘肅農(nóng)業(yè)大學(xué)資源與環(huán)境學(xué)院地理信息系統(tǒng)系,研究方向:地理信息系統(tǒng)。
谷中仁(1991—),男,甘肅武威人,畢業(yè)于甘肅農(nóng)業(yè)大學(xué)資源與環(huán)境學(xué)院地理信息系統(tǒng)系,ESRI中國西安分公司公司職員。