劉媛,鄧蓉
(1.衡陽師范學院“古村古鎮文化遺產數字化傳承”湖南省協同創新中心,湖南 衡陽 421002;2.衡陽師范學院 地理與旅游學院,湖南 衡陽 421002)
古城墻是古建筑的一部分,是城市的重要歷史文化遺產,它不但勾勒出古代城市規整的布局,也體現居民最基本的安全需求與保障,并蘊含深刻的歷史記憶[1]。為有效地數字化保護這類古建筑實體,需使用三維建模技術。常規情況有以下幾類:第一類,對保存完整的歷史遺跡大多數使用較為前沿的點云數據三維構模[2-4],該技術基于點集數據進行快速和精細的三維構模,但是僅支持整體輸出,無法獨立編輯處理,且以現有樣本完整為前提,一旦數據缺失,無法較為智能地自動修復,只能呈現原本實體;第二類,依據手動三維建模軟件,逐一通過量測數據或自我推測的資料進行三維建模,雖然對象可獨立,但是操作復雜且效率比較低下,無法靈活處理內部細節要素的組合關系[5-6];第三類,借助CityEngine可以獨立使用二維數據批量構建三維模型,且獨特的規則驅動方法,受到諸多學者的關注,在古建筑的修復還原中得到推廣與應用[7-12]。但是對于古城墻的三維快速模擬與修復,還未有系統化地研究和實踐,如何有效地構建一套合理的古城墻建模體系,搭建道路與房屋建筑一體化的三維融合值得研究。
本文以樓蘭古城的古城墻為例,通過CGA規則創建一套快速且能靈活生成多部件的古城墻三維建模方法,可智能調整樣式,支持中國古代城墻的基本建筑結構與風格。同時該三維模型的實時動態交互調整有利于資料的多樣化準備,能實現三維數據網絡共享服務,為其快速調用提供便利。
樓蘭古城是早期絲綢之路在西域地段的出入口與屯田中心,也是西域長史府的所在地。歷經千年的風雨滄桑,由于遭受到自然和人為雙重外力作用,城墻與城內的建筑都已破損不堪,只剩原始書籍中描述的空間布局。樓蘭古城位于東經89°55′22″,北緯40°29′55″為不規則方城(見圖1)。根據新疆考古研究所1980年的復原數據,東城墻長333.5 m,南城墻長329 m,西、北城墻各長327 m,周長1 316.5 m,總面積108 240 m2[13-15]。樓蘭古城的建筑樣式和布局,具有漢文化、本土文化和西方文化相融合的特點。

圖1 樓蘭古城平面(出自侯燦[13],1988)
因為古城墻受多種因素破壞,城墻的原始寬度和高度已不清楚,順東北風勢的南北兩城墻相對來說保留較多些。北城垣留存有東西兩段,之間有一缺口寬22 m,缺口兩面都暴露出夯土層,在層與層之間夾雜著紅柳蘆葦枝,缺口似為北城門。南城垣中部也留存有東西兩段,之間也有一缺口寬13 m,同為夯土層結構,基本上和北城垣的缺口相對應,似為南城門。西城垣的中部留存有南北兩段,北端存有兩個土墩,一個殘留在風蝕臺地上,一個離城垣復原線16.5 m,兩個土墩之間距離4 m,似為甕城遺跡。東城垣保留較少,偏南段七層有夯土,夾有碎陶片和垃圾物。城墻為夯筑,結構疏松。從這座古城殘存城垣看,應該是古城最繁華時修筑的建筑,但是從厚薄不均的夯土層看,應不是一次建成的,而是經過多次分筑[16-19]。
考慮古城墻模型的特殊性,摒棄以往采用基于房屋Shape構建建筑模型的做法,拓寬道路Street的適用范圍并充分發揮其獨有的優越性,開展以道路規則構建樓蘭古城墻的整體模型的研究。主要優勢體現在:一方面,在CityEngine中道路規則提供有獨特的路網類型結構設置,一般的道路可以簡單自動區分為左人行道、主路面、右人行道、道路交叉口(如十字路口、T型路口)、路口連接點等多種類型,可以借助道路類型差別快速識別和構建不同古城墻的結構單元(見表1)。其中左人行道和右人行道需要根據繪制方向而定,本次以逆時針方向繪制,因此古城墻內側的登城踏步、宇墻都是左人行道,反之,為右人行道。另一方面,因為古城墻細節參數的不確定性,可以較為靈活地變通城墻寬度、高度、排列方式等參數,便于友好調控。

表1 古城墻單元與道路自匹配規則關系
考慮不同道路的規則標識特征,對應識別出不同的結構單元,主要根據規則類別名進行主題劃分:主路面、左人行道、右人行道、路口連接點。而相對細節對象將會使用特定路段屬性字段或者使用樣式管理來整體控制模型的生成。
城垣和城臺都基于Street矢量主路面構建,將其利用切割函數按照V方向分成三段,兩側是城垣的城墻墻體和兵道,采用拉伸extrude函數抬升一定高度即可,高度設置為可變參數,實時變更調整;中間是城臺的城門和城樓,由于資料記載中城門的位置具有不確定性,因此通過使用split函數實現對城門位置和寬度的同步控制,借助比例分割或者均值分割方式讓城門口位置可任意調整,減少不必要的二次或多次返工。其中在形態特征上,獨特之處在于城門與城樓的設計。
3.1.1 城門樣式
城門主體輪廓為梯形,考慮到城樓上平面兵道的活動范圍,城門超出道路寬度的部分以單坡頂補齊,在東、西、南、北四面城墻的正門都有進城的圓拱狀入口。由于在以往的研究中大多數人認為CityEngine只能構建規則模型,無法直接生成圓弧,而采用3DMax中生成的模型替代。但通過CGA迭代斜坡面語法配合數學方法可以生成不規則圓弧模型(見圖2),主要借助迭代的切割單元,逐一推算斜坡角度和拉伸高度,兩者合并實現拱門生成。雖然算法較為復雜,但攻克次弧度的弊端,相比導入外部模型而言節省了儲存空間,支持無縫匹配。北、南、東三側的城門為同一樣式(見圖3),西城門外有甕城,歷史中,有兩類不一的表達(見圖4),樣式一是在同一直線上的造型,參考巴音郭楞蒙古自治州博物館想象復原模型;樣式二為不在同一直線,參考樓蘭博物館沙盤模型。

圖2 圓拱狀入口代碼和模型

圖3 城門三維模型

圖4 甕城三維模型(左為樣式一、右為樣式二)
3.1.2 城樓樣式
城樓是城市進城的象征,也用以瞭望御敵。城樓坐落于門洞之上,參考同時期漢代所建敦煌古城城樓樣式,為一層雙坡頂式高大建筑,城樓高度可實時調整參數變化,寬度隨著城門的變化而變化。城樓前后僅有門,左右有門和箭窗。箭窗是以對稱中心排列,數量隨著城門寬度的變化而變化,以適應建筑物的合理布局,不會由于城門過寬或者過窄產生突兀;在箭窗與箭窗之間、門與箭窗之間夾有紅色不規則圓柱,使用迭代函數構建而成。四面屋檐下皆有斗拱,是中國漢族修筑的特有的一種結構,采用外部模型導入替代。在東面屋檐下還高懸一塊巨大匾額,上書“樓蘭城”三個大字,為外部導入模型(見圖5)。

圖5 城樓三維模型(自繪)
城門相比城墻較寬,將與生成城門模型的Street矢量面平行的SidewalkLeft切空為城門騰出空間,兩側構建由城內上城墻的登城踏步,經研究分析,主要有三種樣式(見圖6):樣式一是兩側有扶手的土堆壘砌,樣式二是類似現代軟梯以木架搭建,樣式三是從城門旁側而上。其中樓梯個數、傾斜角度、寬度、高度都能夠根據參數任意調控。

圖6 登城踏步三維模型(自繪)
與SidewalkLeft相似,將與生成城門模型的Street矢量面平行的SidewalkRight切空為城門騰出空間,兩側不同樣式具有防御功能的薄墻為女墻,可以根據不同樣式管理控制顯示不同模型,其中垛口有瞭望洞在上和瞭望洞在下兩種樣式。多種預備方案盡可能還原樓蘭古城原本的風貌。
對于城墻外圍大量開墾的農田,由于留出來通往城內的道路必須隨著城門的寬度和位置變化而變化,因此不同于以往繪制矢量面的方式,而是復制一個外城墻SidewalkRight的面,采用split函數與城門配套切割,采用shapeO,shapeU,shapeL和split函數實現農田范圍內地塊的不規整性和隨機的樹位置的不確定。
基于Sidewalk底面生成三維模型時,將四個節點處的SidewalkLeft和SidewalkRight采用長度識別的方法設為NIL,留下修改參數之后的Joint三角形矢量面,通過道路的特性識別構建方形和類似梯形兩種樣式的角樓。其中難點在于類似梯形樣式的角樓,靠城墻兩面為豎直向上,其他兩側類似梯形形狀,整體為不規整形狀。由于四個底面的軸向不同,首先需要屬性識別城墻的四個角落,其中West和East為同一軸向,North和South為同一軸向,其次再使用envelope函數生成貼合城墻的不規整梯形(見圖7)。

圖7 角樓不同形態樣式的三維模型(左側規整型,右側不規整型)
本文改進了城市建模軟件CityEngine中Street Shape只適用于構建道路模型的局限,利用古建筑城墻的分類規律,搭建了對應的不同古城墻模型可調節的樣式庫,擴大其建模的適用范圍,并利用自定義古城墻的CGA規則庫能輕便地構建古城墻建模,效率得以提高,并能友好地上傳模型分享討論(見圖8)。形成一套古城墻三維建模通用方法;其次,解決了諸多專家學者對于樓蘭古城不確定問題,根據文獻資料和不同專家學者的意見,我們可以拆分古城墻的各個部件,且設置可視化的參數接口,提供多樣化兼容性的展示平臺。讓學者們能夠共享自己的想法,提供立體真實的虛擬實物,支持開展更為有效快捷追溯討論,為化解學者們的矛盾,兼顧尊重學者們的科研成果提供有力的技術平臺。

圖8 樓蘭古城墻的網絡分享
本文雖然支持古城墻批量、快速、高效、智能的模擬,但是對于垛口不同拐點的連接處理、拱門多層套環處理、以及具有西域風格或者其他多層次古城墻的控制與管理,仍然需要進一步研究與實驗。