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