余承飛 韋群躍 湯 娣 李楚舒
(北京金土木軟件技術(shù)有限公司,北京 100048)
針對我國村鎮(zhèn)基層設(shè)計人員基礎(chǔ)薄弱、單位技術(shù)力量不足、計算機輔助設(shè)計技術(shù)缺乏等問題,通過對不同生產(chǎn)方式和生活模式下村鎮(zhèn)居住模式和典型住宅建筑的研究,以及對建筑設(shè)計標準以及建筑設(shè)計自身特點的研究,通過計算機輔助設(shè)計及決策支持系統(tǒng)的研究開發(fā),為村鎮(zhèn)住宅建筑設(shè)計人員提供簡便、易于操作、功能強大、知識系統(tǒng)豐富的村鎮(zhèn)住宅計算機輔助建筑設(shè)計的成套技術(shù)。在此系統(tǒng)中,三維建筑設(shè)計軟件支撐系統(tǒng)平臺是基礎(chǔ)平臺,其他知識庫系統(tǒng)和設(shè)計系統(tǒng)均在這個系統(tǒng)支撐平臺環(huán)境之上運行。本文結(jié)合課題的研發(fā)實踐,對研發(fā)時遇到的關(guān)鍵技術(shù)問題進行探討,并闡述系統(tǒng)平臺的架構(gòu)和實現(xiàn)方法。
本系統(tǒng)平臺超越了傳統(tǒng)CAD的以點、線、面等基本幾何信息為基礎(chǔ)的單一圖形技術(shù),通過對參數(shù)化可編輯的建筑實體構(gòu)件按建筑設(shè)計的要求進行邏輯搭建,利用計算機分析與計算功能自動生成建筑平、立、剖面圖以及實時三維顯示和渲染,并在此基礎(chǔ)上實現(xiàn)自動/手工的圖紙排布及滿足一定深度要求的圖片渲染與動畫展示。
本系統(tǒng)包含基本構(gòu)件庫和擴展構(gòu)件庫?;緲?gòu)件庫包含建筑通用的墻、梁、板、柱、屋頂、門窗、樓梯等基本構(gòu)件;在基本構(gòu)件庫的基礎(chǔ)上,結(jié)合不同傳統(tǒng)與地域村鎮(zhèn)民居所常用的一些構(gòu)造單元、樣式等形成擴展構(gòu)件庫。每一類構(gòu)件包含多種樣式,每一種樣式都是一個參數(shù)化的智能物體,它包含了構(gòu)件的系統(tǒng)邏輯屬性、幾何屬性、材料屬性、顯示屬性、生產(chǎn)制造與經(jīng)濟屬性等綜合信息。由于不同參數(shù)可以進行組合,每一種構(gòu)件又可以衍生出多種不同形式的構(gòu)件,不僅能夠滿足正常的設(shè)計需求,而且大大豐富了設(shè)計手段。不同構(gòu)件在系統(tǒng)中放置后,通過系統(tǒng)內(nèi)核的邏輯計算,生成仿真的三維建筑模型。再通過系統(tǒng)的自動識別與設(shè)計人員的指定,生成平、立、剖圖紙。所有構(gòu)件在放置后都可以進行參數(shù)與屬性的修改,并自動體現(xiàn)在相關(guān)的模型與圖紙上,以此完成對設(shè)計的修改。同時可以基于模型數(shù)據(jù),通過系統(tǒng)內(nèi)部的計算功能與人工設(shè)定,實現(xiàn)圖像渲染等多種輔助功能。
本系統(tǒng)利用計算機技術(shù)實現(xiàn)快速設(shè)計,關(guān)鍵要解決參數(shù)驅(qū)動下的模型自動生成的相關(guān)技術(shù),其主要內(nèi)容包括:參數(shù)化構(gòu)件的開發(fā)與生成工具;參數(shù)驅(qū)動的圖形生成與處理;圖形識別;構(gòu)件空間交接邏輯計算;三維模型與二維圖形間的轉(zhuǎn)化;模型視圖聯(lián)動;模型調(diào)用;文本加載與標注;圖形繪制;圖像渲染與動畫及其他相關(guān)的CAD輔助設(shè)計技術(shù)。通過對多種技術(shù)的研究、計算機代碼編制與集成應(yīng)用,形成最終的可操作的三維系統(tǒng)平臺。
本系統(tǒng)平臺的系統(tǒng)架構(gòu)如圖1所示。
本系統(tǒng)的主要功能是接收用戶對圖形的操作命令和參數(shù),執(zhí)行相應(yīng)的圖形處理。如:圖形的平移、縮放、旋轉(zhuǎn)、實時預(yù)覽及3D環(huán)繞等;繪制平、立、剖圖,3D軸測圖、透視圖,3D線框圖,3D著色圖等;把模型渲染為具有真實感的照片或動畫;根據(jù)一段時間內(nèi)的太陽變化模擬真實情況下的建筑色彩、陰影等變化(日照分析);對基本構(gòu)件和擴展構(gòu)件提供支持等。
系統(tǒng)平臺的核心數(shù)據(jù)結(jié)構(gòu)可分解為整體建筑模型數(shù)據(jù)和構(gòu)件數(shù)據(jù)。整體建筑模型數(shù)據(jù)包括模型位置、層高等信息;而每個樓層的數(shù)據(jù)則是由構(gòu)件信息組成的,每種構(gòu)件的定義則存放在構(gòu)件庫中。
系統(tǒng)平臺的構(gòu)件庫從技術(shù)實現(xiàn)的角度看,可分為基本構(gòu)件和擴展構(gòu)件。所謂基本構(gòu)件,是指在系統(tǒng)內(nèi)部實現(xiàn)的梁、柱、墻、板等構(gòu)件;而擴展構(gòu)件是指在存放在擴展構(gòu)件庫中的、可以由用戶根據(jù)需要自行添加的構(gòu)件。在課題項目中,擴展構(gòu)件被用于表現(xiàn)村鎮(zhèn)民居使用的一些建筑構(gòu)件,如有地域特色的欄桿、屋頂裝飾等。
構(gòu)件與系統(tǒng)平臺的各個部分都有關(guān)系。為了顯示構(gòu)件的三維模型,每個構(gòu)件在定義時都要將自身分解為可以用點、線、面等基本繪圖元素表達的圖形對象。例如矩形截面的直線梁構(gòu)件,在顯示時需要將其分解為4個側(cè)面和2個端面,如圖2所示。
對于二維圖形(平面圖)的繪制,不是簡單地生成三維圖形的二維投影,而是要根據(jù)建筑制圖標準的要求,另行繪制。
對于以上處理,基本構(gòu)件是在系統(tǒng)平臺內(nèi)部實現(xiàn)的;擴展構(gòu)件則是在定義構(gòu)件時實現(xiàn)的。因此,對于每個擴展構(gòu)件,都必須將其分解為點、線、面等基本圖形元素,以便讓底層3D圖形庫能夠繪制出構(gòu)件的3D模型;應(yīng)該能夠自定義2D圖形的繪制方法,如果沒有定義,則按照投影的方法自動生成2D圖形。
為了實現(xiàn)以上要求,我們將擴展構(gòu)件設(shè)計成為若干屬性和程序腳本的集合。每個構(gòu)件都有它自己的屬性,這些屬性是用戶可以自行定義的。每個構(gòu)件的3D和2D繪制方法都可以通過程序自行定義,這些程序腳本以構(gòu)件的屬性作為參數(shù),系統(tǒng)平臺會在使用擴展構(gòu)件時調(diào)用這些程序腳本,如圖3所示。
圖1 三維建筑設(shè)計軟件支撐系統(tǒng)平臺系統(tǒng)架構(gòu)圖
需要注意的是,2D圖形繪制程序腳本是用于繪制平面圖的,而3D圖形繪制程序腳本同時用于生成立面圖和3D圖形,即立面圖屬于3D視圖中的一種。
為了在系統(tǒng)平臺中支持擴展構(gòu)件,系統(tǒng)平臺中包含了程序腳本解釋器,采用類似Basic語言的腳本語言。然后將底層圖形函數(shù)庫中的幾何造型、數(shù)學運算等功能封裝成為腳本語言的功能函數(shù)。當需要繪制擴展構(gòu)件的平面圖時,調(diào)用其2D圖形繪制程序腳本;當需要繪制擴展構(gòu)件的三維或立面圖時,調(diào)用其3D圖形繪制程序腳本。圖形繪制腳本語言的功能函數(shù)概覽如圖4所示。
本子系統(tǒng)用于與用戶進行交互,接收用戶輸入的命令、設(shè)置的參數(shù)等,包括平移、縮放、環(huán)繞(旋轉(zhuǎn))、行進模式、3D瀏覽器預(yù)覽、繪圖控制等。
圖4 圖形繪制腳本語言的功能函數(shù)
對于每一種構(gòu)件(如梁、墻、柱、板、屋頂、樓梯、門窗等),均可根據(jù)其材質(zhì)、填充類型、顏色等,將每個構(gòu)件描述成基本圖元(點、線、面、多邊形、多邊體、圖像等)。每個構(gòu)件都有若干顯示狀態(tài),如表1所示。
繪制時可設(shè)置以下基本繪制參數(shù):
(1)平面圖顯示參數(shù)
顯示樓層(所在樓層、所有樓層、與之相關(guān)的上下樓層、所有相關(guān)樓層等),顯示方式(剪切、投影、僅輪廓等),對于投影顯示,還可設(shè)置其投影范圍。
表1 構(gòu)件的繪制狀態(tài)
(2)結(jié)構(gòu)表現(xiàn)形式
剪切填充類型(用于剖面圖),優(yōu)先級(用于構(gòu)件重疊部分的消隱處理)。
(3)剪切面參數(shù)
前景填充畫筆、背景填充畫筆、剪切線類型、剪切線畫筆等。
(4)輪廓顯示參數(shù)
頂部線類型、頂部線畫筆、未剪切線類型、未剪切線畫筆等。
(5)2D符號顯示參數(shù)
線類型、線畫筆等。
(6)3D模型材質(zhì)
不同構(gòu)件可能不同的面需要不同的材質(zhì)貼圖,可以對不同的側(cè)面設(shè)置不同的材質(zhì)。
(7)相關(guān)參數(shù)設(shè)置
某些構(gòu)件主要顯示其文字描述的信息,需要有關(guān)于文字標注信息相關(guān)的參數(shù)設(shè)置:如字體樣式、字高、文本畫筆等。
本系統(tǒng)的基本圖形繪制規(guī)則如表2所示:
表2 基本圖形繪制規(guī)則
對于2D的視圖,每種構(gòu)件的都有其特定的表現(xiàn)形式,例如在平面圖中,梁用其中線表示,柱用其橫截面輪廓及填充表示,如圖5所示。
對于3D視圖,則提供線框圖、消隱線框圖和著色圖三種表現(xiàn)形式,如圖6所示。
在投影方式上,可以選擇軸測圖和透視圖兩種方式。
本系統(tǒng)平臺可提供模型的渲染圖,其參數(shù)包括渲染結(jié)果的照片的大小、照片背景、渲染圖像亮度、渲染范圍、渲染光源、光線和材料效果等。渲染流程如圖7所示。
圖7 3D渲染流程
本系統(tǒng)平臺還支持飛過動畫渲染。首先創(chuàng)建一系列的平行投影或透視投影,在投影之間創(chuàng)建一個動畫轉(zhuǎn)換;然后在創(chuàng)建的投影處重建模型,生成關(guān)鍵幀;最后應(yīng)用一些技術(shù)生成中間畫面。
基于建筑信息模型的設(shè)計方式正在逐步取代傳統(tǒng)的以點、線、面為基礎(chǔ)的繪圖軟件,而本系統(tǒng)平臺直接將基本建筑構(gòu)件內(nèi)置于系統(tǒng)中,并提供可擴展的構(gòu)件庫,為《村鎮(zhèn)住宅建筑設(shè)計模塊化技術(shù)與軟件開發(fā)》課題提供了良好的支撐。
[1]Edward Angel and Dave Shreiner(2011)Interactive Computer Graphics:A Top-Down Approach with Shader-Based OpenGL(6th Edition).
[2]Donald Hearn and M.Pauline Baker(2004)Computer Graphics with OpenGL Third Edition.
[3]Farin G.(1988)Curves and Surface for Computer Aided Geometric Design:A Practical Guide.
[4]楊聯(lián)萍,潘鈞俊,楊欽等.蘇南農(nóng)村住宅結(jié)構(gòu)特點調(diào)研[J].土木建筑工程信息技術(shù),2011,3(2):69-72.
[5]劉永軍,周靜海,孟憲宏.村鎮(zhèn)建筑抗洪性能評價系統(tǒng)研究與開發(fā)[J].土木建筑工程信息技術(shù),2011,3(1):57-62.