李昕娟,王加勝,2
(1. 云南師范大學信息學院,云南 昆明 650500; 2. 云南師范大學西部資源環(huán)境地理信息技術(shù)教育部工程研究中心,云南 昆明 650500)
CityEngineCGA支持下的苗族特色民居三維建模
李昕娟1,王加勝1,2
(1. 云南師范大學信息學院,云南 昆明 650500; 2. 云南師范大學西部資源環(huán)境地理信息技術(shù)教育部工程研究中心,云南 昆明 650500)
少數(shù)民族民居是中華民族文化的重要組成部分,而在現(xiàn)今民族大融合的背景下,傳統(tǒng)少數(shù)民族建筑的傳承和發(fā)展正呈現(xiàn)衰退之勢,采用三維建模技術(shù)對少數(shù)民族民居進行數(shù)字化保存意義重大。苗族民居造型復雜,具有獨特的吊腳樓結(jié)構(gòu),給規(guī)則建模帶來困難。為此,本文以CityEngine軟件為建模平臺,巧妙地組合與運用擠出、拆分、平移等基礎函數(shù),編寫了苗族民居底層支柱、二層主屋和歇山型屋頂?shù)囊?guī)則,完整地實現(xiàn)了苗族典型民居的規(guī)則建模,并實現(xiàn)了民居樣式的動態(tài)調(diào)整與民族村寨的快速生成。研究結(jié)果表明,基于CGA規(guī)則對復雜的民族民居三維建模方法可行,為數(shù)字化保存少數(shù)民族民居提供了便捷的方式。
CGA規(guī)則;苗族民居;三維建模
少數(shù)民族民居是中華民族文化的重要組成部分,而在現(xiàn)今民族大融合的背景下,傳統(tǒng)少數(shù)民族建筑的傳承和發(fā)展正呈現(xiàn)衰退之勢。因此,通過采用三維建模技術(shù)對少數(shù)民族民居進行數(shù)字化保存意義重大。目前,三維建模技術(shù)按數(shù)據(jù)源大致可分為4類,即基于幾何[1-2]、激光掃描點云數(shù)據(jù)[3-5]、影像[3,6-7]和語法規(guī)則[8-12]的三維建模。其中,基于幾何的三維建模方法使用最為廣泛,可以建立精細逼真的三維模型,但難以進行三維空間分析與三維模型更新[13];基于點云的三維建模方法數(shù)據(jù)預處理工作量大,且三維重建技術(shù)尚不成熟;基于影像的三維建模方法存在難以獲取建筑立面紋理的弊端;而基于語法規(guī)則的建模方法可實現(xiàn)快速批量建模,三維信息獲取方式與規(guī)則設計靈活[14],同時還可以整合其他建模方法,是一種高效快捷的三維建模手段。而CityEngine軟件是規(guī)則建模的代表,利用CGA語言生成三維模型的規(guī)則,實現(xiàn)快速大批量建模[15]。
目前民族民居三維模型的研究主要為幾何建模[16-17]、激光掃描方式[18-19],采用規(guī)則建模的較少。傳統(tǒng)的苗族民居多為吊腳樓,木質(zhì)結(jié)構(gòu),樓上住人,樓下架空,用茅草或青瓦蓋頂。樓下采用多根木柱支撐,用于堆放柴草,樓上則建設有走廊和房間,整體架構(gòu)較為復雜,給規(guī)則建模帶來了困難。為此,本文以CityEngine為規(guī)則建模軟件,探索復雜的苗族民居的規(guī)則建模技術(shù),將幾何建模方法整合到CGA規(guī)則中,巧妙運用常規(guī)操作的組合實現(xiàn)苗族民居的動態(tài)調(diào)整和批量建模,實現(xiàn)民族村寨虛擬場景,為其他少數(shù)民族民居文化的數(shù)字化保存提供借鑒。
對苗族民居進行三維建模所需的數(shù)據(jù)主要包括地理底圖數(shù)據(jù)、基本部件模型和貼圖數(shù)據(jù)。
(1) 地理底圖數(shù)據(jù)。地理底圖數(shù)據(jù)是指建模所需的矢量數(shù)據(jù)及底面地形數(shù)據(jù),在ArcMap中建立面圖層,根據(jù)村寨的布局繪制民居底面矩形,導入CityEngine中作為模型的起始面。在本研究中繪制若干塊規(guī)則分布的矩形,用于展示批量生成模型的效果。
(2) 基本部件模型。模型部件主要是為了表達較為復雜的細節(jié)或重用性較高的模型,目前CityEngine支持OBJ和DAE兩種模型部件格式。在本文中準備的模型數(shù)據(jù)包括圓柱體和梯子兩種,均是通過SketchUp繪制導出。
(3) 貼圖數(shù)據(jù)。為了使苗族民居更加真實,需要對模型的外部進行紋理貼圖。本文中用到的紋理包括墻面、窗戶、屋頂、門、地板、柱子等紋理圖案,主要通過相機拍攝和網(wǎng)絡搜索獲取。
貼圖數(shù)據(jù)獲取后,還需要一定的預處理才能使用。拍攝照片時要盡量獲取建筑物的正面,保證建筑物形態(tài)規(guī)則。但由于建筑高度、光照等因素的影響,圖片比例仍然會失調(diào),不能直接使用,需要用Photoshop或CityEngine自帶的Crop Image工具進行裁剪、拉伸等處理,使之成為正射狀態(tài)才能寫入規(guī)則中引用[20]。另外,紋理采集要全面,確保建筑的各個方向都采集齊全,沒有遺漏。
CityEngine軟件的三維建模主要通過編寫CGA規(guī)則文件應用于平面矩形實現(xiàn)。CGA規(guī)則以一個底面為起點,主要通過典型操作的混合使用實現(xiàn)三維建模,包括平移(t)、拉伸(extrude)、拆分(comp)、分割(split)、偏移(offset)、模型替換(i),以及添加紋理和構(gòu)建屋頂?shù)让睢C缱迕窬拥臉?gòu)建可分為3部分,分別是數(shù)據(jù)準備、規(guī)則建模和結(jié)果展示,其中規(guī)則建模又分為3塊依次進行,分別是底層支柱、二樓居室和屋頂?shù)慕?如圖1所示)。
圖1 基于規(guī)則的苗族民居建模技術(shù)路線
苗族民居的底層是通過數(shù)根高出地面的柱子支撐,將整座房屋架空,柱子的下部通常是由石墩打底,以防木樁遭受侵蝕腐朽,柱子連接著基底和樓板兩個部分。結(jié)合CGA的命令,底層支柱建模包括以下3個步驟:
(1) 基底與樓板分割。將底面拉伸為3個樓板厚度的幾何體,沿豎直方向?qū)⒗斓膸缀误w均分為上中下3部分,上部和中部分別作為創(chuàng)建屋頂和二樓居室的基礎,根據(jù)需要分別向上平移兩層樓高(height×2)和一層樓高(height)的高度,下部則作為底層支柱的基礎。上部的頂面用作屋頂建模,中部的頂面用作二層房間和走廊的建模,下部的頂面用于底層柱子建模。
(2) 柱子底面的獲取。CityEngine中不能用規(guī)則生成圓柱,但可以用外部基本圓柱體替換立方體,因而其底面是正方形。因此,柱子底面獲取就是要把這些表示柱子底面的正方形標識出來。可以根據(jù)柱子的底面半徑及柱子間隙,將底面分割為棋盤狀,柱子底面所在方塊命名為柱子,用于后續(xù)柱子建模,其余方塊則命名為地面,后續(xù)除貼紋理外不作處理。因此,可以通過橫豎2次分割實現(xiàn)柱子底面的獲取。分割示意圖如圖2所示,其對應的關鍵代碼如下:
diceng→
split(x){{0.7:chang|~distance:dimian}*|0.7:chang}
chang→
split(y){{0.7:zhuzi|~distance:dimian}*|0.7:zhuzi}
圖2 通過分割獲取柱子底面示意圖
(3) 柱子的形成。柱子包括底座和木柱兩部分,可通過兩次拉伸實現(xiàn)。先對柱子底面拉伸底座高度,形成立方體,用圓柱替換,作為木柱的石樁底座。由于木柱比底座半徑小,需將其頂部使用偏移函數(shù)向內(nèi)縮進,再對內(nèi)部拉伸木柱高度,得到木柱。關鍵代碼如下:
zhuzi→
extrude(0.6)
i("models/圓柱.obj")
comp(f){top:Top|side:Side}
Top→
offset(-0.1)
comp(f){inside:Inside| border:Border}
Inside→
extrude(height-0.6)
二樓為苗族民居的主體部分,分為前方的走廊和后方的主屋。
(1) 走廊與主屋劃分。以之前平移一層樓高高度的樓板為基礎,對其頂面沿寬的1/4處分割一次,此時頂面分為一大一小、一前一后兩個部分,前面小的部分作為創(chuàng)建走廊的基礎,后面大的部分作為創(chuàng)建主屋的基礎。
(2) 走廊規(guī)則建模。走廊是苗族民居規(guī)則建模中除支柱外的另一個難點,而走廊的難點又在于它包括邊緣粗細、高矮相間的圍欄。其規(guī)則建模需要先分割出過道與圍欄,再對圍欄擠出體分割出橫梁和底面,其中圍欄底面的劃分是走廊規(guī)則建模的關鍵,首先找到圍欄欄桿的分布規(guī)律,先分出大立柱,再分出小立柱,按規(guī)律給各部分命名并標明其尺寸,再據(jù)此進行處理。圖3為走廊分割的一個示例,其中深灰色方塊是大立柱的底面,淺灰色方塊是小立柱的底面。
圖3 走廊分割示意圖
(3) 主屋規(guī)則建模。主屋包括門、窗和墻壁3部分。主屋規(guī)則建模時,先使用拉伸(extrude)命令拉伸層高形成基本框架,再將頂面和其他5個面拆分(comp),正面使用分割(split)命令進一步分割為門、窗,方法與分割柱子底面類似,這里不再贅述。
(4) 樓梯的實現(xiàn)。苗族民居的樓梯與現(xiàn)代磚頭鋼筋水泥混合建造的樓梯差異較大,它是完全由木頭或竹子搭建的,形態(tài)傾斜,孔洞不規(guī)則,用CGA規(guī)則很難實現(xiàn)。于是先采用幾何建模的方式然后導入到CityEngine中,再通過替換函數(shù)(i)寫入規(guī)則中。進行替換時重點考慮如何將其放置在正確的位置,這需要用到旋轉(zhuǎn)(r)、平移(t)、縮放(s)等多個變換函數(shù),經(jīng)過多次嘗試和調(diào)整直到樓梯置于合適的位置。
苗族民居的屋頂是我國古代建筑和少數(shù)民族建筑中常見的屋頂,稱為歇山頂或九脊頂,有上下檐之分,上檐近似于雙坡頂,下檐近似于金字塔坡頂。在規(guī)則建模時,先使用roofHip函數(shù)創(chuàng)建金字塔坡頂,再將其分為上下兩部分,上部分用roofGable函數(shù)創(chuàng)建雙坡頂。關鍵代碼如下:
TopS→
roofHip(roofAngleHip,overHang) #屋頂下檐
split(y){′0.5:comp(f){bottom:NIL|horizontal:
RoofGable| all:FlatRoof_Tex }}
RoofGable→
roofGable(roofAngleGable) #屋頂上檐
comp(f){bottom:NIL|aslant:FlatRoof_Tex|side:
color("#a68371")RoofSide.}
CityEngine軟件中貼圖的實現(xiàn)有兩種方式:一是通過i(geometryPath)規(guī)則引入外部帶貼圖的模型;二是通過texture(string texturePath)規(guī)則在CityEngine內(nèi)部通過規(guī)則控制來完成貼圖的實現(xiàn)。在苗族民居的建模中,兩種方式均有所使用。其中樓梯貼圖的實現(xiàn)是采用第一種方式,在幾何建模的過程中就進行貼圖,導出的模型可直接應用到規(guī)則中。其余地方皆是采用第二種方式,通過內(nèi)部規(guī)則導入貼圖文件,實現(xiàn)紋理貼圖。使用texture進行貼圖的關鍵在于約束texture引入的圖片所代表的實際大小和其擺放的位置等信息,因而就產(chǎn)生了控制圖片代表的實際尺寸、控制圖片的重復次數(shù)兩種方式的貼圖。前者適用于建筑物、護欄等的貼圖,后者適用于道路或與道路相關的具有走向的平面貼圖。本研究使用的是前者。如門的紋理貼圖代碼如下:
door→
setupProjection(0,scope.xy,~6,~4)
texture("DOOR.jpg")
projectUV(0)
屬性的可調(diào)節(jié)性作為語法規(guī)則建模的典型特征之一,具有不可替代的優(yōu)勢,它提供可視化的、交互的對象屬性參數(shù)修改面板來調(diào)整規(guī)則參數(shù)值,且可以立刻看到調(diào)整以后的結(jié)果,這種參數(shù)的調(diào)整是不會修改規(guī)則本身的。在規(guī)則的開始,對該建筑物的某些常用屬性進行定義,并規(guī)定其參數(shù)的變換范圍,以便后面直接使用定義的參數(shù)名。本研究對苗族民居進行了樓層高度、支柱間距、屋頂坡度等的定義,其參數(shù)名、取值范圍的設置,以及對應的含義見表1。
表1 苗族民居屬性調(diào)節(jié)表
將最終的規(guī)則文件應用到建筑底面上,便實現(xiàn)了苗族民居的三維模型及苗族村寨的三維場景。規(guī)則建模的分步實現(xiàn)效果如圖4所示,由一個民居底面開始,依次實現(xiàn)分層、支柱、居室和屋頂模型的構(gòu)建。只需將所構(gòu)建的規(guī)則文件應用于不同的矩形區(qū)域,就可以生成苗族民居模型。該模型還能實現(xiàn)隨參數(shù)變化而調(diào)整,以及模型批量生成的效果。
圖4 苗族民居分布編寫規(guī)則效果
(1) 動態(tài)調(diào)整效果。通過可變參數(shù)的設置使得CityEngine實現(xiàn)一個規(guī)則文件,多個模型樣式。讓模型外觀隨參數(shù)的變化而變化。通過調(diào)整支柱間距參數(shù),增多或減少支柱數(shù)量;通過調(diào)整樓層高度參數(shù),改變一、二樓的層高;通過調(diào)整屋頂坡度參數(shù)改變屋頂上下坡坡度。具體變換效果如圖5所示。
圖5 調(diào)節(jié)苗族民居參數(shù)示意圖
(2) 批量建模效果。當所有參數(shù)調(diào)整至滿意的效果時,將CGA規(guī)則應用到事先準備的所有矩形地塊,便實現(xiàn)了模型的批量生成。當需要再次調(diào)整外觀時,只需要將所有模型選中,再改變檢查面板中的參數(shù),就能使模型整體隨之改變。苗族民居批量生成效果如圖6所示。
圖6 苗族民居批量生成效果
本文以CityEngine軟件為建模平臺,針對苗族民居的建筑特點及復雜性,巧妙運用分割、平移等命令,編寫了CGA規(guī)則文件,完成了苗族民居和苗族村寨的三維展示,既可以隨時按需改變模型外觀,批量生成模型,又可以重復利用規(guī)則和模型,而且規(guī)則文件數(shù)據(jù)量小。研究結(jié)果表明,基于CGA規(guī)則對復雜的民族民居三維建模方法可行,為數(shù)字化保存少數(shù)民族民居提供了便捷,實現(xiàn)了小型建筑的快速有效調(diào)整,提高了建模效率,縮短了建模周期,降低了建模成本。然而,基于規(guī)則的三維建模精細程度與基于幾何的建模方式還存在差距,有待擴充相關命令進一步提升建模效果。
[1] 孫敏,陳軍.基于幾何元素的三維景觀實體建模研究[J].武漢大學學報(信息科學版),2000,25(3):233-237.
[2] 高山,陳思.城市三維建模技術(shù)與標準研究[J].測繪通報,2013(3):95-97.
[3] 黃妙華.基于激光雷達與傾斜攝影的三維建模技術(shù)探析[J].工業(yè),2017(1):23.
[4] 江記洲,郭甲騰,吳立新,等.基于三維激光掃描點云的礦山巷道三維建模方法研究[J].煤礦開采,2016,21(2):109-113.
[5] 楊林,盛業(yè)華,王波.利用三維激光掃描技術(shù)進行建筑物室內(nèi)外一體建模方法研究[J].測繪通報,2014(7):27-30.
[6] 史文中,曹輝,張劍清.基于高分辨率影像的城市三維建模[J].武漢大學學報(信息科學版),2004,29(9):783-787.
[7] 鄧非,張祖勛,張劍清.基于序列影像的城市三維建模[J].計算機工程,2007,33(8):208-209.
[8] 張芷萱,莊曉蓉,王加勝.基于CityEngine的大理海東新城虛擬山地城市構(gòu)建[J].云南地理環(huán)境研究,2016,28(3):37-43.
[9] 張暉,劉超,李妍,等.基于CityEngine的建筑物三維建模技術(shù)研究[J].測繪通報,2014(11):108-112.
[10] 謝小魁,陳青海,陳煜均.基于規(guī)則的三維地理信息系統(tǒng)自動建模[J].地理空間信息,2016,14(10):26-28.
[11] 龔雨,劉媛,王亮,等.CGA參數(shù)化快速建模的研究與實現(xiàn)——以雨母山古寺廟建筑群為例[J].測繪通報,2017(4):112-115.
[12] 劉媛,鄧運員,劉立生,等.CityEngine CGA支持下的傳統(tǒng)民居復雜屋頂建模及優(yōu)化——以衡陽市中田村為例[J].測繪通報,2016(3):98-102.
[13] 鄧世軍,朱卓娃,江宇,等.基于激光點云數(shù)據(jù)的三維建模技術(shù)研究[J].科技資訊,2015(10):32-33.
[14] 于明旭.基于三維激光掃描數(shù)據(jù)的三維模型重建技術(shù)研究[D].武漢:中國地質(zhì)大學(武漢),2011.
[15] JIN X,WANG F,HAO L,et al.Analysis of the Modeling Method and Application of 3D City Model Based on the Cityengine[C]∥International Conference on Advances in Mechanical Engineering and Industrial Informatics.Dubai:[s.n.],2015.
[16] 王聰華,郭霖蓉,周玲玲,等.古建筑布達拉宮金頂三維重建方法[J].計算機時代,2015(1):4-7.
[17] 張佳佳.少數(shù)民族建筑三維數(shù)字化模型的構(gòu)建研究[J].貴陽學院學報(自然科學版),2016,11(1):42-45.
[18] 隋惠權(quán),劉玉彬,孫建剛,等.民族建筑數(shù)字化技術(shù)研究[J].大連民族學院學報,2009,11(5):447-449.
[19] 曹海龍,楊曉波.三維激光掃描技術(shù)在建筑物建模中的應用[J].甘肅科技縱橫,2015,32(7):24-26.
[20] 包振虎,劉濤,張志華.基于ArcGIS Engine的三維數(shù)字校園的設計與實現(xiàn)[J].世界地理信息,2013(6):66-71.
3DModelingoftheMiaoResidencesBasedonCityEngineCGA
LI Xinjuan1,WANG Jiasheng1,2
(1. School of Information Science and Technology,Yunnan Normal University,Kunming 650500,China; 2. The Engineering Research Center of GIS Technology in Western China Ministry of Education of China,Yunnan Normal University,Kunming 650500,China)
Minority residence is an important part of the Chinese national culture.However,the inheritance and development of traditional minority architecture show a trend of decline under the current national amalgamation background.So,it is of great significance to carry on the digital preservation of the minority nationality dwellings with the 3D modeling technology.The Miao dwelling architecture is ingenious and complicated because it has a unique structure of the stilted building.This characteristic brings difficulty to rules modeling.Therefore,this study took CityEngine as the modeling platform,and constructed the rules of the pillars of the first floor,the main house of the second floor and the Xieshan-style roof through intelligently combining the CGA functions of extrusion,splitting,translation,etc. Finally,the rules based 3D model of the Miao typical buildings were implemented.With these rules,the residential style can be dynamically changed,and ethnic village can be rapidly generated.The results show that the 3D modeling method of complex ethnic houses based on CGA rules is feasible,which provides a convenient way for the digital preservation of the minority residences.
CGA;Miao residences;3D modeling
2017-03-22
國家自然科學基金青年科學基金(41501436)
李昕娟(1996—),女,本科生,主要研究方向為三維地理信息系統(tǒng)。E-mail:389870947@qq.com
王加勝。E-mail:wjerson@foxmail.com
李昕娟,王加勝.CityEngine CGA支持下的苗族特色民居三維建模[J].測繪通報,2017(12):112-116.
10.13474/j.cnki.11-2246.2017.0391.
P237
A
0494-0911(2017)12-0112-05