劉曉平, 錢晶晶, 余 燁, 羅月童
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院可視化與協(xié)同計(jì)算(VCC)研究室,安徽 合肥 230009)
當(dāng)前,建筑物造型已成為虛擬現(xiàn)實(shí)、3D游戲、計(jì)算機(jī)仿真等領(lǐng)域的重點(diǎn)研究對(duì)象之一,但如何快速建立三維造型,以滿足其在這些領(lǐng)域的廣泛應(yīng)用仍是一個(gè)問題。目前建筑物的三維造型一般仍采用通用建模軟件來實(shí)現(xiàn),如3ds max、Maya等,復(fù)雜建筑物的建模往往費(fèi)時(shí)費(fèi)力。而特色建筑具有統(tǒng)一的風(fēng)格,建成建筑形象的材料、結(jié)構(gòu)構(gòu)造、色彩裝飾具有地方特色[1]。以徽派建筑為例,建筑一般具有以下特點(diǎn):在外觀上,大多為下矮上高的兩層樓房,外用白墻圍合,僅開少數(shù)漏窗;房屋兩端的風(fēng)火墻基本都為馬頭墻;外觀色調(diào)上不用重彩濃色[2]。
因此,對(duì)于地域特點(diǎn)鮮明、整體風(fēng)格統(tǒng)一、局部細(xì)節(jié)差異的建筑結(jié)構(gòu),適合采用一種通用的描述方法,而模板就不失為一種很好的選擇。它的基本思想是從一組相似的事物中抽象出一種框架型的模式,任何一個(gè)類似的事物都可作為以模板為超類派生的類型的實(shí)例[3]。對(duì)于特色建筑中的共性部分,如塔建筑中的飛檐,可抽象為模板,從而加速建筑設(shè)計(jì)與建模過程。
本文提出了一種基于面向?qū)ο竽0宓目焖贅?gòu)建方法,在分析了特色建筑風(fēng)格特征的基礎(chǔ)上,廣泛收集模型所需紋理,建立特色建筑模板庫,并將其風(fēng)格特征抽象為規(guī)則,以約束建模過程,從而快速構(gòu)建特色建筑模型。
在基于模板的虛擬現(xiàn)實(shí)研究中,文獻(xiàn)[4]以模板為指導(dǎo)思想,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向科技展示的虛擬現(xiàn)實(shí)開發(fā)平臺(tái),對(duì)虛擬現(xiàn)實(shí)場(chǎng)景模板進(jìn)行解釋,并生成虛擬現(xiàn)實(shí)場(chǎng)景。Sun J等針對(duì)道路網(wǎng)的生成問題,提出通過輸入二維圖像,利用歸納出的道路模板和規(guī)則系統(tǒng)產(chǎn)生城市的虛擬交通網(wǎng),并可通過自我調(diào)節(jié)以避免受限的幾何區(qū)域或者因城市發(fā)展所造成的變化[5]。
在工程應(yīng)用方面,文獻(xiàn)[6]中總結(jié)了管道CAD系統(tǒng)中的平剖圖的若干標(biāo)注模板,實(shí)現(xiàn)了局部的模板匹配和自動(dòng)標(biāo)注。根據(jù)工程設(shè)計(jì)中存在著大量既定模式。文獻(xiàn)[7]將模板運(yùn)用于工程設(shè)計(jì)中,并將該研究應(yīng)用于工廠鋼結(jié)構(gòu)的系統(tǒng)設(shè)計(jì)中。雷璐等針對(duì)三維建筑構(gòu)建提出一種描述語言——PCML,并結(jié)合EasyStructure軟件得到應(yīng)用[8]。
在協(xié)同化產(chǎn)品設(shè)計(jì)中也有模板技術(shù)的研究應(yīng)用。鑒于約束信息重要性,文獻(xiàn)[9]針對(duì)協(xié)同模板中約束信息的特點(diǎn),討論了信息可視化的具體涵義及形式化表述,提出了由約束和諧性、相似性及約束信息可視化技術(shù)構(gòu)成的研究框架。文獻(xiàn)[10]提出了一種基于描述設(shè)計(jì)對(duì)象部件的模板設(shè)計(jì)標(biāo)記語言TDML,用于協(xié)同模板描述設(shè)計(jì)部件方式,其中描述的部件僅是一種結(jié)構(gòu),而非面向設(shè)計(jì)的對(duì)象。文獻(xiàn)[11]從協(xié)同模板功能結(jié)構(gòu)的角度對(duì)協(xié)同模板進(jìn)行分類,分為元級(jí),特征級(jí)與復(fù)合級(jí),并采用面向?qū)ο蠓椒ū憩F(xiàn)其層次結(jié)構(gòu),但文中所提的OO并非真正意義上的OO,只是對(duì)模板自頂向下進(jìn)行分解。
特色建筑具有結(jié)構(gòu)清晰、風(fēng)格統(tǒng)一、局部差異等特點(diǎn),在模板設(shè)計(jì)中應(yīng)當(dāng)充分體現(xiàn)。廣泛應(yīng)用于程序設(shè)計(jì)的OO思想以對(duì)象的形式描述一類事物,具有良好的封裝性、通用性、繼承性,將面向?qū)ο笏枷肱c模板技術(shù)相結(jié)合,可以很好地滿足特色建筑模板設(shè)計(jì)的要求。
本文借鑒面向?qū)ο笏枷?,針?duì)特色建筑的結(jié)構(gòu)特點(diǎn)和風(fēng)格特征,提出了以“基模板-結(jié)構(gòu)模板-實(shí)例化模板”架構(gòu)為核心的面向?qū)ο竽0宓乃枷?,并用于特色建筑的快速建模中。其與OO程序設(shè)計(jì)語言的“屬性(基本數(shù)據(jù)類型)-類-對(duì)象”對(duì)應(yīng)關(guān)系如圖1所示,表明了二者在思想上的一致性。
圖 1 面向?qū)ο竽0迮cOO設(shè)計(jì)語言對(duì)應(yīng)關(guān)系示意圖
描述建筑物基本部件的模板稱為基模板。建筑物一般由大量基本部件構(gòu)成,如房屋中的墻、屋頂,亭中的柱子等,這些部件在三維建模中可視為基本的不可再分的結(jié)構(gòu)。本文定義了方體、柱體、球體等基本部件與3ds文件表示的一些基本形體難以表達(dá)的結(jié)構(gòu),如塔建筑中的飛檐,如圖2所示。它們附著上不同的紋理即構(gòu)成基模板。
基模板由模板ID、模板名、基本部件類型、參數(shù)列表、紋理ID、包圍盒、相對(duì)位置、定位點(diǎn)、可見性、組合屬性等參數(shù)加以描述,以EBNF(擴(kuò)展的巴科斯范式)表示為:
圖 2 飛檐
對(duì)于由較多整體結(jié)構(gòu)相似但局部參數(shù)不同的部分組成的建筑來說,可以構(gòu)建一種通用的結(jié)構(gòu)模板。它是一類具有共性結(jié)構(gòu)的建筑物模板,由N(N>0)個(gè)結(jié)構(gòu)模板或基模板按照某種排布方式組合而成。它并不細(xì)化到建筑物設(shè)計(jì)的具體參數(shù),僅描述某類建筑物的組成部分、重復(fù)結(jié)構(gòu)的排布方式等,其建立在基模板描述的基本部件基礎(chǔ)上。結(jié)構(gòu)模板以EBNF表示為:
模板之間的組合不是任意的,需要相應(yīng)的規(guī)則加以約束。根據(jù)特色建筑物的營造規(guī)則和風(fēng)格特點(diǎn),將規(guī)則分為尺寸規(guī)則和位置規(guī)則。前者體現(xiàn)模板中的部件的尺寸特征和部件間的匹配情況;后者則體現(xiàn)部件在整個(gè)建筑結(jié)構(gòu)中的布局。其形式化表示如下:
結(jié)構(gòu)模板通過模板組合規(guī)則對(duì)基模板進(jìn)行封裝,描述了特色建筑的結(jié)構(gòu),與面向?qū)ο笾械念愅ㄟ^方法對(duì)屬性的封裝相吻合,成功地將面向?qū)ο笏枷霊?yīng)用于模板架構(gòu)中。
實(shí)例化模板用于描述建筑物最終的設(shè)計(jì)結(jié)果,通過對(duì)結(jié)構(gòu)模板指定參數(shù)產(chǎn)生。結(jié)構(gòu)模板描述的只是一類建筑部件的設(shè)計(jì)架構(gòu),并沒有生成具體的建筑物,因此需要對(duì)結(jié)構(gòu)模板中的參數(shù)賦值,實(shí)現(xiàn)結(jié)構(gòu)模板的實(shí)例化,最終完成建筑物建模。
在介紹面向?qū)ο竽0宓幕舅枷氲幕A(chǔ)上,給出其建模一般流程,如圖3 所示。
首先在結(jié)構(gòu)模板庫中搜索是否存在相似的設(shè)計(jì)結(jié)構(gòu),如果存在,則只需修改部分參數(shù)即完成設(shè)計(jì);否則按層次進(jìn)行設(shè)計(jì),對(duì)于已有結(jié)構(gòu)模板或基模板可直接引用,將重復(fù)部分的特點(diǎn)用參數(shù)表示;在結(jié)構(gòu)模板基礎(chǔ)上,用戶通過指定模板的具體參數(shù),形成實(shí)例化模板,最后渲染出建筑物;通過擴(kuò)充紋理庫和基模板庫,可方便結(jié)構(gòu)模板設(shè)計(jì),從而得到不同效果的建筑物。
圖3 面向?qū)ο竽0褰A鞒淌疽鈭D
本文基于面向?qū)ο竽0宓慕7椒?gòu)建了特色建筑快速建模系統(tǒng),并利用其進(jìn)行三維建模,取得較好的效果。下面以塔為實(shí)例來展現(xiàn)“基模板―結(jié)構(gòu)模板―實(shí)例化模板”架構(gòu)與建模過程。
設(shè)計(jì)者在設(shè)計(jì)之初具有塔的宏觀布局,分析其風(fēng)格特征,建立相應(yīng)的基模板并構(gòu)建基本結(jié)構(gòu)模板。根據(jù)塔的模板層次結(jié)構(gòu)(如圖4 所示)搭建細(xì)化的結(jié)構(gòu)模板,逐層指定重復(fù)部分的模板的排布方式、宏觀數(shù)量(一個(gè)或多個(gè))及相對(duì)位置參照物。在此基礎(chǔ)上,進(jìn)入實(shí)例化階段,通過指定塔的層數(shù)為6,且中間部分直線排布間距為0,即可生成6 層塔的實(shí)例化模板。如有局部參數(shù)與設(shè)計(jì)要求不同,設(shè)計(jì)者可對(duì)其調(diào)整以滿足需求,如將最頂層中間部分的層頂可見性設(shè)為否,以便與塔頂接合;最后通過渲染得到塔的建筑模型,并將最終設(shè)計(jì)結(jié)果保存。塔結(jié)構(gòu)模板的XML 描述如下,其最終建模效果如圖5 所示。
圖 4 塔的模板層次結(jié)構(gòu)
圖5 塔建模效果圖
本文介紹了一種基于面向?qū)ο竽0宓奶厣ㄖ7椒?,在總結(jié)建筑物一般特點(diǎn)和特色建筑營造規(guī)則的基礎(chǔ)上,借鑒面向?qū)ο笏枷雭砻枋鼋ㄖ镌O(shè)計(jì)的模板,提出“基模板-結(jié)構(gòu)模板-實(shí)例化模板”架構(gòu),實(shí)現(xiàn)了建筑物模型的快速建模,具有較強(qiáng)的通用性和靈活性。
在本文的基礎(chǔ)上,下一步可考慮擴(kuò)充模板庫,總結(jié)區(qū)域性建筑規(guī)則,結(jié)合規(guī)劃信息,構(gòu)建大規(guī)模特色建筑場(chǎng)景,為特色城市建設(shè)提供方便。
[1] 張國梅. 淺談徽州傳統(tǒng)民居的環(huán)境布局及建筑特色[J]. 安徽建筑, 2002, (1): 32-33.
[2] 周亞琦, 周均清. 徽州民居的建筑類型學(xué)研究[J]. 四川建筑, 2007, 27(2): 46-48.
[3] 劉曉平, 韓江洪, 張佑生, 等. 工程CAD 中的模板運(yùn)算與性質(zhì)研究[J]. 系統(tǒng)仿真學(xué)報(bào), 2000, 12(6): 592-594.
[4] 陳 皓, 劉曉平. 基于模板的虛擬現(xiàn)實(shí)平臺(tái)[J]. 系統(tǒng)仿真學(xué)報(bào), 2006, 18(12): 3434-3437.
[5] Sun J, et al. Template-based generation of road networks for virtual city modeling [C]//Proceedings of ACM Virtual Reality Software and Technology (VRST), Hong Kong, 2002: 33-40.
[6] Liu Xiao-ping. An algorithm for feature placement piping CAD system [C]//CAD/Graphics' 97, Beijing: International Academic Press, 1997: 427-432.
[7] 劉曉平, 田景成, 等. 基于模板的工程CAD 設(shè)計(jì)方法研究[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 1999, 11(4): 296-299.
[8] 雷 璐, 蘇 豐, 蔡士杰. 建筑構(gòu)建參數(shù)化建模語言PCML 的設(shè)計(jì)和應(yīng)用[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2006, 18(5): 687-693.
[9] 劉曉平, 石 慧, 毛崢強(qiáng). 協(xié)同模板中的約束信息可視化[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2005, 17(10): 2334-2338.
[10] 劉曉平, 毛崢強(qiáng), 石 慧, 等. 面向網(wǎng)絡(luò)化協(xié)同模板技術(shù)的模板設(shè)計(jì)標(biāo)記語言[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2006, 18(8): 1224-1230.
[11] 劉曉平, 毛崢強(qiáng). 面向?qū)ο蟮膮f(xié)同模板分類模型研究[J]. 工程圖學(xué)學(xué)報(bào), 2007, 28(1): 37-41.