劉 鋰,段芃芃
(成都理工大學 工程技術學院,四川 樂山 614007)
隨著人民日益增長的物質文化需要,旅游業在當代社會得到迅速發展,大眾對旅游景點虛擬化的需求也逐漸擴大,所以旅游虛擬化平臺的實現是大勢所趨。隨著數字化城市發展的相對成熟,虛擬技術逐漸向古建筑領域邁進,但目前對于古建筑建模研究學術較少,大部分是對現代城市的快速建模,相比于古建筑模型而言,現代建筑比較中規中矩,樣式簡而平整,但古建筑樣式建立就比較復雜[1-4],如:屋頂的建立方式,它有垂脊的上翹弧度,比較難控制。目前多采用傳統建模技術實現。
傳統的技術有SketchUp、3dsMax、Creator等三維建模軟件,建立的模型可以達到足夠精細,但是過程相對復雜;模型制作周期相對較長、效率較低,也不具備坐標信息,不適合用于建立大規模的三維數字城市場景。
文中主要是根據國內外對于古建筑模型研究方面較為空白的現狀所展開,以閬中古城的古建筑為例進行基于CityEngine的模型建立,建立方式是通過CGA文件的編寫,根據建模理論進行規則優化[5-6],對所設計內容中的古建筑院落、門窗、屋頂、閣樓塔、防哥特式建筑等進行原理精確分析,所涉及原理包括平移、旋轉、拉伸,說明原理算法在規則中該如何應用才能把建筑模型建立,然后分析最終模型呈現效果,對它的展現方式和精確度進行分析。
對于古建筑的建立必須遵從古建筑營造特征,是中軸對稱的等級布局形式,這體現著一種禮制規范,如“三孔”的院落布局特點,主體建筑風格保持一致,建筑群沿著一條從南到北的中軸線左右對稱排列,根據建筑的營造對稱特點,對于閬中古城的院落建筑均采用該方式,左右對稱,整體風格保持一致;對于比較有特色的四合院院落,根據潛意識的誘導作用,往往人們會有先大后小的觀賞意識,所以對于該種建筑,在CGA[7-8]文件編寫時主廂方位的房屋要體量大,造型繁復有特色;中國古代的屋頂體型很大,莊重雄偉,空間上有一種壓抑感,所以通過讓屋頂出檐,反曲向上,使它在空間上達到和諧統一;在《中國傳統建筑門窗、隔扇裝飾藝術》一書中說明門是一個通道,是建筑內部與外部的連接出口,它不是單體結構,所以門的建立一般是幾扇門并排在一起,設置在屋身的中軸線上;柱子是古建筑當中重要的角色,往往位于建筑最突出的部位,古時的柱子多為木柱,為了預防柱腳潮腐,柱下會修建臺基,為了保持穩定性,柱與柱之間會有穿插枋,抱頭梁進行連接,這不僅能起到固定作用,還具有審美效果。
(1)中軸對稱。
中國傳統建筑文化有“尊者居其中”的方位意識,這是受儒家文化禮制、等級的要求所影響,而這也符合美學的觀點,古希臘哲學家畢達哥拉斯曾說,“一切美的形體都必須有對稱形式”,所以這種美學意識由來已久。對稱分為左右對稱,上下對稱,古建筑院落的布局采用的是左右對稱,它的中軸對稱是以大門中點為起點到大門所對正屋的中點為終點的一條直線,建筑整體以該條直線鏡面對稱,所以在編寫規則時所依據的分割數學理論是,空間當中任意一條直線的中點到兩端的距離都相等原則,即如圖1(a)中軸對稱理論所示。
XBA=XBC,XBD=XBE,XGA=XCF,XHE=XDI
(1)
其中AECD表示院落活動區域,均有對稱性質融入,圖1(b)是該原理在規則中的運用,a、b、c、d為建筑區域。

圖1 中軸對稱規則
(2)旋轉角度。
球形比任何一種立體形狀都要堅固,這是因為它的每一個地方都能受力,且受力均勻。拱形的受力特點與球形相似,它的受力方式是從頂點出發,擴散到端點。因此在建筑中弧形樣式備受青睞,因為它的受力擴散,能起到很好的鞏固作用,對于外觀的美化程度也尤為明顯。在實際運用中,旋轉角度影響著建筑的穩定性,在規則編寫時如旋轉角度不確定,就必須一點點調試,這大大降低了建模速度[9],而且如果角度不適合,還影響著建筑的整體呈現效果。
根據圖2(a),弧長AC表示旋轉基礎線的寬度用a表示,角AOC代表旋轉的角度用θ表示,AO是圓的半徑用r表示(O在實際中是門或窗邊上的中點),根據弧長公式得出旋轉角度[10-11],即
a=θ×r×π/4r?θ=4a/π
(2)
在CGA文件編寫中,還要確定循環次數才能將弧形表示出來,循環次數用n表示,由圖可知,從A到B是四分一的圓,則
n×a=2πr/4r?n=rπ/2a
(3)

圖2 通過旋轉實現的古建筑
由旋轉角度與循環次數的公式可知旋轉角度與基礎直線的寬度成正比,循環次數與直線寬度是反比例函數關系,為了讓弧形邊緣更圓滑,就讓循環次數增加,即設置基礎直線的寬度時盡量減小。在規則實際運用中,如圖2(b)所示,它的旋轉角度通過公式推出為AB之間的角度為3.2,由A的寬度決定,生成圖中所示效果的循環次數為23次,由C的長度與A的寬度所決定,圖2(c)為效果圖。
(3)穩定性。
給定三條邊,就能確定三角形的形狀及其角度,而四邊形就不能兩者都確定,這是三角形具有穩定性的原理,在古建筑建模中處處都能體現它的作用。如屋頂側面具有三角形形狀,撐拱與柱子或墻構成的也是三角形,但建模時撐拱只由一根柱子構成,為了加強其穩定性,將它設置成牛腿,這是將三角形穩定性原理的加強,是撐拱時三角形只有一個,如圖3(a)所示,加強后是許多個三角形共同給予房屋的穩定。圖3(b)是將穩定性運用于規則中的撐拱,圖3(c)是穩定性加固后的牛角。

圖3 古建筑穩定性規則設計
(4)黃金比例。
在古建筑建模中運用最多的就是分割函數,而所分割的比例大約為0.618,能讓分好的每一塊顯示出最美的效果,在設計樓層高度時,就讓高層建筑的二層高度比上一層的高度等于一層的高度比上建筑整體高度,黃金比例為:
AB/BC=BC/AC=0.618
(4)
該原理的應用還表現在院落的活動區域上,活動區域一般為矩形,分割時使它的較短邊比上較長邊的比例為黃金比例,就能建立出平時所說的黃金矩形,如圖4(a)所示。
BC/AB=0.618
(5)
當分割建筑門窗時,將黃金矩形的原理運用其中,這是將數學、美學、建筑學合三為一。其中二層高度/一層高度=黃金比例,如圖4(b)所示,門寬/門長=黃金比例,構成黃金矩形。

圖4 黃金比例設計規則
閬中古城中天主堂的建立區別于其他古建筑院落,它的平面是矩形,在對整體平面進行分割時,將右邊單獨分開,進行傳統古建筑的建立,然后將其余三邊分割出一小部分,這是周邊圍墻的建立,以此和右邊房屋將天主堂包圍在其中,天主堂的位置分割在靠后的位置,將前面留出一定區域就是教堂廣場位置;建筑中主要運用的是循環語法,本次設計中涉及的方式為模型循環。
如下為建模流程,由于天主堂是中軸對稱建筑,首先依據右手法則將建筑分為三個部分進行分塊建模,再對第一部分按比例進行劃分。圖5(a)為分塊劃分示意圖。如圖5(a)所示的兩個建筑,它們的整體結構基本是一致的,不同的地方是:墻面材質、窗戶樣式和裝飾物樣式。只需要在其規則中修改對應的對象參數代碼即可實現,不需要重新編寫新的規則。這樣可以對規則進行重復利用,從而提高建模的效率。
柱子上部結構的建立方式是將柱子頂部正方形作為基礎面,運用模型循環進行建立,在x,y方向上進行劃分,綜合使用院落生成的拉伸原理使a部分建立完成,如圖5(b)所示。

(a)分塊劃分示意圖

(b)a部分生成示意圖

(c)b和c部分生成示意圖

(d)圓弧形成示意圖
b部分的建立采用與上文所提的迭代算法,通過平移加縮放共同完成,所涉及的縮放公式為:

(6)
其中,Sx,Sy是在x,y方向上的縮放量,圖5(b)所示的縮放只需在x,y方向上進行,z方向的量采用平移公式達到效果。該方式比運用三個方向的縮放簡便,也易于執行,圖中向外放大的縮放量為1.1,即Sx=Sy=1.1,向內縮小的縮放量為0.9,z方向的平移量由以下平移公式得出:

(7)
它的平移量與拉伸量相同,當運用該公式獲得平移高度時,拉伸量同步確定,圖中所示的平移量為0.08,當迭代結果的平面與基礎迭代面相同時,算法結束。
頂部尖狀結構的建立與四面坡建立方式類似,四面坡迭代完成時矩形成一條直線,圖中所示c部分效果是矩形迭代過程中的平移縮放,當矩形成為一個頂點,在基礎矩形中心處上方時迭代結束,如圖5(c)所示。
圖5(d)中圓形建筑部件建立方式是循環加旋轉的迭代算法所完成,主要形成代碼如下:
smbai1-->
R(0)
R(n)-->
case n [t(0,0.22,0)r(0,0,-5.1) R(n+1) mbai] else:NIL mbai2--> split(y){~1:kong|baibiank*1.9:smbai2} smbai2--> B(0) B(n)--> case n [t(0,0.22,0)r(0,0,6.1) B(n+1) mbai] else:NIL 拱形門窗的建立也可以采取該方式,算法中它的循環次數與旋轉角度要根據所要進行旋轉的基礎小方塊的大小與旋轉原點來決定,由于旋轉平面在二維內,所運用的旋轉公式為: (8) 任意一點(x,y)繞一個坐標點(x0,y0)逆時針旋轉θ角度后新的坐標為(x1,y1),圖中所示是根據循環加該公式完成,旋轉總角度為360度,每一次從B到A的旋轉方向的角度要很小,以該種方式形成的圓弧保證了它的光滑度。 古建筑模型建立過程與現代建筑方法類似,只是在屋頂處理上有所不同,最開始都是拉伸、分割,對于特殊物件需要進行縮放、旋轉等操作,現代建筑多為平頂,而古建筑當中是雙面坡、歇山頂式的屋頂結構。 在本次設計完成的古建筑模型中,大多建筑是相對比較有特色的院落,它的周圍是有特色的圍墻,大門邊有石墩,院落內有照壁、綠化,建筑為兩層結構,三面環繞。對于它的建立不需要建立多個圖層,然后進行拼接,在CityEngine中建立是在開始時對整體平面進行各部分的劃分,包括圍墻,大門,院落,綠化,房屋,臺階,還有照壁,然后對每一部分根據相應原理進行規則編寫。 根據古建筑的建立過程,將CityEngine規則[]編寫方式與傳統建模方式進行對比,明顯比對出本次設計中的建立方式更為優越。CityEngine古建筑建模,規則統一編寫,前期設計時間長,后期實現和維護時間短,靈活性強。傳統工具古建筑建模,需要建立多個圖層、進行拼接,前期長,后期長,不靈活,不利于后續的修改和維護。 通過對文獻[12]的研究,運用3ds Max方法進行建模,它的建模成果與實際有較大的偏差,精度不高,這對古建筑的場景復原效果不大。在《基于SuperMap的圖形處理技術》中看出矢量圖的精度與控制點的精度,密度還有分布情況有關,但控制點是通過人工操作,必然會有一定偏差,這就導致最終模型不夠精確。 由于建筑建模實現原理主要是通過CGA文件編寫來激活二維對象,驅使二維數據生成三維立體模型。CGA是計算機生成器(computer generated architecture)[13-15]的縮寫,它有一系列的CGA規則(決定模型如何生成),在規則中調用函數就能實現相應的功能,所以本次設計的古建筑模型建立時所進行的每一步操作,都有具體的數字精度,這就促使最終完成的模型精確度很高,從而增加了場景的真實感,與現實實物有很高的還原度。 圖6 精度分析對比圖 三維城市化建模的發展日新月異,但對于古建筑的計算機語言所形成的最后場景虛擬化還需要進行更深一步的研究與探索。文中以閬中古城的古建筑建模為研究方向來進行探討,古鎮模型主要包括了中國傳統古建筑和教堂等,根據古鎮內的不同建筑樣式進行了設計,采用古建筑的建筑思想,分析了古建筑的結構,通過從中軸對稱、旋轉角度、穩定性結構和黃金比例進行設計,并采用了CGA語言進行規程模型的代碼的編寫,能快速實現復雜的古建筑模型。對于教堂模型,采用了結構分析,結構分割,拉伸模型設計、平移模型設計、縮放模型設計等,進行了CGA代碼實現,可以通過改變文件中的相關參數即可實現對相應模型的調整、修改。該技術可以實現大規模區域不同建筑的生成,極大程度地滿足了城市規劃和三維古建筑建模的需求,為古建筑三維建模技術提供了新的技術參考。3 實驗分析與數據對比

4 結束語