劉曉平, 錢晶晶, 余 燁, 羅月童
(合肥工業大學計算機與信息學院可視化與協同計算(VCC)研究室,安徽 合肥 230009)
當前,建筑物造型已成為虛擬現實、3D游戲、計算機仿真等領域的重點研究對象之一,但如何快速建立三維造型,以滿足其在這些領域的廣泛應用仍是一個問題。目前建筑物的三維造型一般仍采用通用建模軟件來實現,如3ds max、Maya等,復雜建筑物的建模往往費時費力。而特色建筑具有統一的風格,建成建筑形象的材料、結構構造、色彩裝飾具有地方特色[1]。以徽派建筑為例,建筑一般具有以下特點:在外觀上,大多為下矮上高的兩層樓房,外用白墻圍合,僅開少數漏窗;房屋兩端的風火墻基本都為馬頭墻;外觀色調上不用重彩濃色[2]。
因此,對于地域特點鮮明、整體風格統一、局部細節差異的建筑結構,適合采用一種通用的描述方法,而模板就不失為一種很好的選擇。它的基本思想是從一組相似的事物中抽象出一種框架型的模式,任何一個類似的事物都可作為以模板為超類派生的類型的實例[3]。對于特色建筑中的共性部分,如塔建筑中的飛檐,可抽象為模板,從而加速建筑設計與建模過程。
本文提出了一種基于面向對象模板的快速構建方法,在分析了特色建筑風格特征的基礎上,廣泛收集模型所需紋理,建立特色建筑模板庫,并將其風格特征抽象為規則,以約束建模過程,從而快速構建特色建筑模型。
在基于模板的虛擬現實研究中,文獻[4]以模板為指導思想,設計并實現了一個面向科技展示的虛擬現實開發平臺,對虛擬現實場景模板進行解釋,并生成虛擬現實場景。Sun J等針對道路網的生成問題,提出通過輸入二維圖像,利用歸納出的道路模板和規則系統產生城市的虛擬交通網,并可通過自我調節以避免受限的幾何區域或者因城市發展所造成的變化[5]。
在工程應用方面,文獻[6]中總結了管道CAD系統中的平剖圖的若干標注模板,實現了局部的模板匹配和自動標注。根據工程設計中存在著大量既定模式。文獻[7]將模板運用于工程設計中,并將該研究應用于工廠鋼結構的系統設計中。雷璐等針對三維建筑構建提出一種描述語言——PCML,并結合EasyStructure軟件得到應用[8]。
在協同化產品設計中也有模板技術的研究應用。鑒于約束信息重要性,文獻[9]針對協同模板中約束信息的特點,討論了信息可視化的具體涵義及形式化表述,提出了由約束和諧性、相似性及約束信息可視化技術構成的研究框架。文獻[10]提出了一種基于描述設計對象部件的模板設計標記語言TDML,用于協同模板描述設計部件方式,其中描述的部件僅是一種結構,而非面向設計的對象。文獻[11]從協同模板功能結構的角度對協同模板進行分類,分為元級,特征級與復合級,并采用面向對象方法表現其層次結構,但文中所提的OO并非真正意義上的OO,只是對模板自頂向下進行分解。
特色建筑具有結構清晰、風格統一、局部差異等特點,在模板設計中應當充分體現。廣泛應用于程序設計的OO思想以對象的形式描述一類事物,具有良好的封裝性、通用性、繼承性,將面向對象思想與模板技術相結合,可以很好地滿足特色建筑模板設計的要求。
本文借鑒面向對象思想,針對特色建筑的結構特點和風格特征,提出了以“基模板-結構模板-實例化模板”架構為核心的面向對象模板的思想,并用于特色建筑的快速建模中。其與OO程序設計語言的“屬性(基本數據類型)-類-對象”對應關系如圖1所示,表明了二者在思想上的一致性。

圖 1 面向對象模板與OO設計語言對應關系示意圖
描述建筑物基本部件的模板稱為基模板。建筑物一般由大量基本部件構成,如房屋中的墻、屋頂,亭中的柱子等,這些部件在三維建模中可視為基本的不可再分的結構。本文定義了方體、柱體、球體等基本部件與3ds文件表示的一些基本形體難以表達的結構,如塔建筑中的飛檐,如圖2所示。它們附著上不同的紋理即構成基模板。
基模板由模板ID、模板名、基本部件類型、參數列表、紋理ID、包圍盒、相對位置、定位點、可見性、組合屬性等參數加以描述,以EBNF(擴展的巴科斯范式)表示為:



圖 2 飛檐
對于由較多整體結構相似但局部參數不同的部分組成的建筑來說,可以構建一種通用的結構模板。它是一類具有共性結構的建筑物模板,由N(N>0)個結構模板或基模板按照某種排布方式組合而成。它并不細化到建筑物設計的具體參數,僅描述某類建筑物的組成部分、重復結構的排布方式等,其建立在基模板描述的基本部件基礎上。結構模板以EBNF表示為:

模板之間的組合不是任意的,需要相應的規則加以約束。根據特色建筑物的營造規則和風格特點,將規則分為尺寸規則和位置規則。前者體現模板中的部件的尺寸特征和部件間的匹配情況;后者則體現部件在整個建筑結構中的布局。其形式化表示如下:
結構模板通過模板組合規則對基模板進行封裝,描述了特色建筑的結構,與面向對象中的類通過方法對屬性的封裝相吻合,成功地將面向對象思想應用于模板架構中。
實例化模板用于描述建筑物最終的設計結果,通過對結構模板指定參數產生。結構模板描述的只是一類建筑部件的設計架構,并沒有生成具體的建筑物,因此需要對結構模板中的參數賦值,實現結構模板的實例化,最終完成建筑物建模。
在介紹面向對象模板的基本思想的基礎上,給出其建模一般流程,如圖3 所示。
首先在結構模板庫中搜索是否存在相似的設計結構,如果存在,則只需修改部分參數即完成設計;否則按層次進行設計,對于已有結構模板或基模板可直接引用,將重復部分的特點用參數表示;在結構模板基礎上,用戶通過指定模板的具體參數,形成實例化模板,最后渲染出建筑物;通過擴充紋理庫和基模板庫,可方便結構模板設計,從而得到不同效果的建筑物。

圖3 面向對象模板建模流程示意圖
本文基于面向對象模板的建模方法構建了特色建筑快速建模系統,并利用其進行三維建模,取得較好的效果。下面以塔為實例來展現“基模板―結構模板―實例化模板”架構與建模過程。
設計者在設計之初具有塔的宏觀布局,分析其風格特征,建立相應的基模板并構建基本結構模板。根據塔的模板層次結構(如圖4 所示)搭建細化的結構模板,逐層指定重復部分的模板的排布方式、宏觀數量(一個或多個)及相對位置參照物。在此基礎上,進入實例化階段,通過指定塔的層數為6,且中間部分直線排布間距為0,即可生成6 層塔的實例化模板。如有局部參數與設計要求不同,設計者可對其調整以滿足需求,如將最頂層中間部分的層頂可見性設為否,以便與塔頂接合;最后通過渲染得到塔的建筑模型,并將最終設計結果保存。塔結構模板的XML 描述如下,其最終建模效果如圖5 所示。

圖 4 塔的模板層次結構

圖5 塔建模效果圖

本文介紹了一種基于面向對象模板的特色建筑建模方法,在總結建筑物一般特點和特色建筑營造規則的基礎上,借鑒面向對象思想來描述建筑物設計的模板,提出“基模板-結構模板-實例化模板”架構,實現了建筑物模型的快速建模,具有較強的通用性和靈活性。
在本文的基礎上,下一步可考慮擴充模板庫,總結區域性建筑規則,結合規劃信息,構建大規模特色建筑場景,為特色城市建設提供方便。
[1] 張國梅. 淺談徽州傳統民居的環境布局及建筑特色[J]. 安徽建筑, 2002, (1): 32-33.
[2] 周亞琦, 周均清. 徽州民居的建筑類型學研究[J]. 四川建筑, 2007, 27(2): 46-48.
[3] 劉曉平, 韓江洪, 張佑生, 等. 工程CAD 中的模板運算與性質研究[J]. 系統仿真學報, 2000, 12(6): 592-594.
[4] 陳 皓, 劉曉平. 基于模板的虛擬現實平臺[J]. 系統仿真學報, 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 設計方法研究[J]. 計算機輔助設計與圖形學學報, 1999, 11(4): 296-299.
[8] 雷 璐, 蘇 豐, 蔡士杰. 建筑構建參數化建模語言PCML 的設計和應用[J]. 計算機輔助設計與圖形學學報, 2006, 18(5): 687-693.
[9] 劉曉平, 石 慧, 毛崢強. 協同模板中的約束信息可視化[J]. 計算機輔助設計與圖形學學報, 2005, 17(10): 2334-2338.
[10] 劉曉平, 毛崢強, 石 慧, 等. 面向網絡化協同模板技術的模板設計標記語言[J]. 計算機輔助設計與圖形學學報, 2006, 18(8): 1224-1230.
[11] 劉曉平, 毛崢強. 面向對象的協同模板分類模型研究[J]. 工程圖學學報, 2007, 28(1): 37-41.