魏翔,彭清山
(武漢市勘測設計研究院,湖北武漢 430022)
虛擬城市建筑模型快速構建方法研究
魏翔?,彭清山
(武漢市勘測設計研究院,湖北武漢 430022)
隨著虛擬現實技術的發展,虛擬城市作為數字城市的重要組成部分也得到了快速發展。而虛擬城市建設的主要內容就是大量城市三維模型的構建,因此如何提高建模效率一直是虛擬城市建設者努力的方向之一。本文提出了一種基于二維數據的建筑模型快速構建方法,在利用程序自動化建模方面做了嘗試。
虛擬城市;建筑模型;快速構建
隨著城市快速發展,人們對全面了解和認識城市的要求越來越高,傳統的地圖、影像和視頻等信息媒體已經不能滿足人們更高層次的要求,而虛擬城市的出現解決了這一問題,它可以將整個城市用虛擬現實的方式展現到人們面前,甚至還可以追溯城市歷史,推演城市變遷過程。
所謂虛擬城市是指以計算機技術、多媒體技術和大規模存貯技術為基礎,運用3S技術、遙測、仿真-虛擬技術等對城市進行多分辨率、多尺度、多時空和多種類型的三維描述,用于模擬和表達城市地形地貌、城市道路、建筑、交通、水域等城市環境中的現象和過程[1]。虛擬城市是對真實城市的數字化三維重現,其重點在于城市三維模型的構建。而對于一個城市而言,建筑數量往往多達幾十萬棟,進行如此大規模的建筑模型構建,工作量十分巨大,因此,尋求一種快速高效的建模方法是虛擬城市建設的關鍵問題之一。
目前,建筑模型構建方法主要有三種:①通過二維數據結合高度屬性進行建模。②通過影像建立立體像對獲取三維數據進行建模。③通過三維激光掃描獲取點云數據直接進行三維重構。其中第一種方法是直接利用現有數據進行建模,而后兩種方法都需要重新進行數據采集和生產。
在城市的發展建設過程中,城市規劃和測量單位積累了十分豐富的基礎地理數據,充分利用這些已有的二維數據和屬性數據進行三維建模,不僅能夠提高生產效率,同時也提高了數據的利用價值,是當前一種比較經濟可行的建模方法。
本文以二維數據與其高度屬性值作為建模數據源,使用3ds Max腳本語言開發的快速建模程序自動完成簡單模型的創建和貼圖,最后可根據需要對模型進行檢查和整飾,具體建模過程如圖1所示。

圖1 快速建模流程
3.1 二維數據
二維數據通常包括GIS、地圖和CAD等平面圖形數據,這些數據都經過精確測量和定位,可以作為三維建模時的底線圖。由于這些平面圖形數據中還存在一些誤差或錯誤,因此,首先需要對圖形數據進行檢查,以保證二維數據的合理性和正確性。例如,一棟建筑的邊界線應該是一條連續且閉合的曲線,不應該出現交叉或重疊的情況。本文在數據轉換過程中,將建筑圖形數據定義為一組依次記錄各個頂點坐標值的坐標串,以便在3ds Max軟件中能夠準確的還原出建筑邊界線。
3.2 屬性數據
建筑屬性數據主要來自測量、調查以及其他文件資料,對于建模相關的屬性數據主要包括表1所示數據。

建筑屬性數據 表1
建筑ID是每棟建筑的唯一標識符,用來關聯其圖形數據、屬性數據以及模型數據。建筑樓層數據必須提供,通過貼圖方法,將反映出建筑模型層數特征,同時,如果無法提供正確的建筑房頂和基地高程,那么建筑高度將由樓層數乘以單層高度推算得出。房頂類型可根據城市建筑特色選取特征房頂結構進行分類,例如:平頂、雙坡屋頂和帶女兒墻的平頂等。由于建筑表面材質和基調色各不相同,所以應分別區分為幾類,然后以建筑表現出的主要材質和顏色進行歸類,如建筑表面材質可分為磚墻、瓷磚、石材、玻璃幕墻等,建筑基調色分為白、灰、黃、紅、藍等。
在數據轉換文本中也包括以上屬性信息,建筑ID和樓層數是必須要準確提供的數據,其他屬性數據如果不能提供,則以默認值作為其屬性值。
3.3 紋理數據
(1)由圖片素材制作紋理
城市建筑中的大部分墻面、門、窗的樣式和顏色都比較固定,具有一定的相似性。因此,可以從已有的圖片素材庫中選取符合要求的圖片,再進行加工處理后,制作成自己需要的紋理,如圖2所示。這種方法制作速度快、紋理分辨率高,圖像清晰美觀并且可以多次重復使用。

圖2 由圖片素材制作的紋理
(2)由實際照片提取紋理
如果需要體現模型的真實性,那么就需要從建筑物照片中提取紋理。但是,實際拍攝的照片受拍攝角度的限制,照片大多是以透視角度成像的,如圖3所示,而貼圖需要的是正射紋理,因此需要對照片進行糾正處理。另外受光影和其他物體遮擋的影響,還要對照片進行裁切、修補和色彩還原等處理,才能完成紋理制作,如圖4所示。這種方法制作的紋理體現了較強的真實感,但拍照和紋理制作將消耗較長工作時間。

圖3 實際拍攝的照片

圖4 由實際照片提取的紋理
4.1 動建模方法
在3ds Max中,通過程序讀取帶有建筑屬性值和建筑邊界線頂點坐標值的數據文件,數據文件定義為txt格式,文件中一行數據表示一個建筑模型,每個建筑模型的數據之間以“;”分割。
主要腳本代碼如下:

獲取數據后,即可由頂點坐標值創建出建筑邊界線,形成閉合曲線,然后根據基底高程和房頂高程獲得建筑高度,通過Extrude方法擠出模型體,最后,根據建筑屬性值為模型賦予材質紋理。
4.2 默認貼圖方法
建模過程中,程序會根據屬性數據中提供的信息,自動完成模型貼圖。一般情況下,對于一個建筑模型的貼圖是以“面”貼圖方式進行的,如圖5所示,在垂直方向上,以建筑的樓層數據為準,有多少層結構,就將貼圖的重復次數調整為多少次,以垂直方向上的窗戶數量表現樓層數。而在水平方向上,將建筑模型立面區分為建筑縱墻(沿建筑物長軸方向布置的墻)和山墻(沿建筑物短軸方向布置的墻),在模型縱墻墻面上,根據面的大小確定貼圖樣式和次數,較大的面上貼圖的窗戶數量也較多。而在山墻面上,一般不設置窗戶,以墻面紋理為主,當山墻面較大時,可設置一列窗戶或兩列窗戶。
主要腳本代碼如下:

以上代碼將完成建筑模型一個立面的自動貼圖,如圖6所示,依次循環選擇建筑模型的各個立面,即可完成整個建筑的默認貼圖。

圖5 “面”貼圖方式

圖6 模型立面自動貼圖
4.3 人工整飾
建筑模型雖然可以自動完成建模和貼圖過程,但是貼圖樣式比較單一,缺乏真實感。如圖7所示的模型就是利用程序自動完成貼圖后的模型,如果該建筑是普通居民住宅或工廠倉庫等建筑,只要求能夠反映出建筑體和基本色調,那么可以通過這樣的簡單模型來表示。而如果該建筑是重要建筑或臨街建筑,這樣的效果顯然不能滿足虛擬城市的建設需要,因此,應該根據實際情況,進行人工整飾,通過調換紋理樣式和顏色,或用照片紋理替換默認紋理的方法來增加模型真實感。圖8所示的模型就是經過人工整飾后,賦予照片紋理后的模型效果。

圖7 程序自動完成的模型

圖8 人工整飾后的模型
目前,虛擬城市的建設正處于起步階段,其方法和技術也在試驗和探索中。根據用戶需求的不同,三維模型的構建方法也各不相同,但是,快速高效、真實美觀、精簡平衡是所有建模工作者努力的方向。本文以提高建模效率為目的,提出了基于二維數據的建筑模型快速構建方法,這是在利用程序自動化建模方面做的初步研究。借鑒這種思路,還可以將程序建模方法逐步推廣到水系、道路、植被、景觀小品等其他模型的快速建模方面。
[1] 劉曉艷,林琿,張宏.虛擬城市建設原理與方法[M].北京:科學出版社,2004
[2] 王華.3ds MAXScript腳本語言完全學習手冊[M].兵器工業出版社,2006
[3] [美]Kelly L.Murdock,田玉敏,沈金河譯.3ds Max8寶典[M].北京:人民郵電出版社,2007
[4] 孫家廣,楊長貴.計算機圖形學[M].北京:清華大學出版社,1998
[5] 鄔倫,劉瑜,張晶等.地理信息系統——原理、方法和應用[M].北京:科學出版社,2006
Research on Rapid Modeling Method for Architectural Model of Virtual City
Wei Xiang,Peng QingShan
(Wuhan Geotechnical Engineering and Surveying Institute,Wuhan 430022,China)
With the development of virtual reality technology,virtual city that is an important component of digital city has obtained fast development.The main work of virtual city is to construct a large number of 3D models,so how to improve the efficiency is always one of hard efforts of virtual city construction.This paper provides a rapid modeling method based on 2D data to construct architectural model of virtual city,and presents an automatic modeling technology using computer program.
virtual city;architectural model;rapid modeling
1672-8262(2010)06-23-03
P208
B
2010—01—27
魏翔(1980—),男,工程師,主要從事虛擬城市的建設與研究工作。