楊思瑤,寧寶寬,陸海燕,王守平
(沈陽工業(yè)大學(xué)建筑與土木工程學(xué)院,沈陽110870)
本文旨在通過BIM建模軟件根據(jù)設(shè)計(jì)效果圖建立出三維立體建筑模型,以Unity3d兼容模式導(dǎo)入,借助Unity3d平臺(tái)二次開發(fā)建筑模型,客戶可以更加直觀地從任意角度觀看居室,且可以通過電子設(shè)備在室內(nèi)漫游瀏覽、視角轉(zhuǎn)換,并在室內(nèi)家裝的設(shè)計(jì)中引入“交互設(shè)計(jì)”的理念,有助于優(yōu)化客戶與室內(nèi)環(huán)境的相互協(xié)調(diào),實(shí)現(xiàn)功能分區(qū)的合理利用,客戶可以憑自己喜好對家居產(chǎn)品的個(gè)性化搭配,滿足了客戶的交流互動(dòng)體驗(yàn),使客戶更沉浸、更有效地完成他們預(yù)想的操作,獲得愉快的用戶體驗(yàn)。有助于解決設(shè)計(jì)師設(shè)計(jì)后期與客戶的喜好不斷磨合的問題,減輕家裝設(shè)計(jì)的負(fù)擔(dān)和壓力,并且提高家裝設(shè)計(jì)效率。
本系統(tǒng)主要利用BIM軟件如Revit完成建模和貼圖,以Unity3d兼容模式導(dǎo)入數(shù)據(jù)庫中,然后搭建虛擬現(xiàn)實(shí)(VR)場景,將模型拖拽到Unity3d場景中,添加燈光渲染、擺放家具等,進(jìn)行功能合理分區(qū),并在Unity3d平臺(tái)搭建UGUI框架,用戶可以進(jìn)行點(diǎn)擊查看房間介紹、構(gòu)件查看、房間瀏覽、墻地面材質(zhì)更替、家具替換、夜間模擬等一系列虛擬交互操作,使用戶得到沉浸式、交互式的體驗(yàn),從而使得用戶獲得滿意的家裝設(shè)計(jì),本系統(tǒng)框架如圖1所示。
系統(tǒng)運(yùn)行需要的模型包括房間三維立體模型和其內(nèi)部各種家具的模型,由于Unity3d平臺(tái)具有強(qiáng)大的多平臺(tái)、多兼容特性,可同時(shí)支持多種現(xiàn)行的BIM軟件建造的三維立體模型,因此我們采用Revit來建造所需要的三維模型,再以.FBX格式導(dǎo)入U(xiǎn)nity3d平臺(tái),但Revit模型導(dǎo)入U(xiǎn)nity3d的過程中也會(huì)出現(xiàn)材質(zhì)的丟失情況,為此在Revit建模時(shí),將Revit材質(zhì)與Unity3d材質(zhì)做標(biāo)準(zhǔn)化處理,再根據(jù)需要為模型添加材質(zhì)和貼圖,形成模型。
圖1 系統(tǒng)框架圖
系統(tǒng)采用的是一個(gè)多平臺(tái)的網(wǎng)絡(luò)系統(tǒng),因此需要強(qiáng)大的數(shù)據(jù)庫作支撐,我們在系統(tǒng)設(shè)計(jì)的過程中采用的是SQL Server 2008軟件作為數(shù)據(jù)庫系統(tǒng),這樣BIM的建筑實(shí)體模型、內(nèi)部家具模型和它們涉及到的材質(zhì),都做成相應(yīng)的結(jié)構(gòu)編號(hào)及標(biāo)準(zhǔn)化處理,然后以表格的形式存儲(chǔ)到到各種數(shù)據(jù)庫中,包括家具表格、門窗表格、墻地面材質(zhì)表格等,集成龐大的數(shù)據(jù)庫。
基于Unity3d平臺(tái),搭建虛擬現(xiàn)實(shí)場景。Unity 3d提供的用戶界面可以進(jìn)行3D可視化處理,利用實(shí)時(shí)的3D引擎功能,渲染和處理所有的場景內(nèi)容。效果圖如圖2。
圖2 建筑戶型
先將Revit發(fā)布的.FBX格式的文件直接拖到Assets文件夾下導(dǎo)入U(xiǎn)nity3d中。再將附帶材質(zhì)貼圖的居室模型拖拽入場景面板中,創(chuàng)建世界平行光(Directional light),調(diào)整角度與距離場景物體的高度,渲染真實(shí)日照效果且避免過硬的陰影效果;在室內(nèi)的各個(gè)房間里添加點(diǎn)光源(Spotlight),模擬真實(shí)的燈光效果,增加室內(nèi)空間的美感,右鍵點(diǎn)擊在Hierarchy面板中的GameObject燈,在菜單中選擇Light->Spotlight。
從家具模型庫中拖拽家具到場景面板的房間模型內(nèi),完成家具的初步家具布置,實(shí)現(xiàn)功能分區(qū)的有效利用;制作場景小地圖,便于用戶對居室的戶型一目了然。
Unity3d平臺(tái)是本系統(tǒng)的一個(gè)客戶端界面,通過網(wǎng)絡(luò)端、手機(jī)端、PC端可對Unity 3d界面進(jìn)行3D可視化處理,利用實(shí)時(shí)的3D引擎功能,渲染和處理所有的室內(nèi)環(huán)境。用戶可以在立體的空間內(nèi)自由行走。它還可以實(shí)現(xiàn)即時(shí)、動(dòng)態(tài)的顯示用戶所在室內(nèi)位置及朝向,對墻壁顏色進(jìn)行更改或貼上不同材質(zhì)的壁紙,更換地面材質(zhì),可以根據(jù)自己的喜好添加并隨意擺放家具,可以任意地拖動(dòng)、旋轉(zhuǎn)、改變尺寸大小、甚至刪除不喜歡的家具或者裝飾物。預(yù)設(shè)游歷路線播放相機(jī)漫游動(dòng)畫,為環(huán)境添加音樂,大大刺激了瀏覽者的視聽感受。這一切都在Unity3d平臺(tái)下被完美的實(shí)現(xiàn)。以下是本系統(tǒng)主要的交互設(shè)計(jì)方案:
在采用窄行密植栽培技術(shù)的過程中,應(yīng)堅(jiān)持因地制宜的原則,選擇適宜的生育期、優(yōu)良的植株品質(zhì)、高產(chǎn)、抗逆性強(qiáng)、耐茬、高產(chǎn)等品種。良好的內(nèi)部和外部質(zhì)量,已事先審查和批準(zhǔn)。種植;要求所選種子的純度、純度和發(fā)芽率等指標(biāo)符合國家法定標(biāo)準(zhǔn);通常每三年更換種植品種,確保種植品種的產(chǎn)量,嚴(yán)格禁止自留種子的培養(yǎng);不允許使用轉(zhuǎn)基因品種。
系統(tǒng)采用多級(jí)菜單(如圖3),對UI界面的控制是通過C#腳本SetActive(true/false)控制菜單的顯隱狀態(tài),進(jìn)行菜單間的切換。下面以二級(jí)菜單打開三級(jí)菜單為例給出部分代碼:FJZS_ThirdMenu.SetActive(false);HideAllThirdMneu_ZNJJ();switch(Name_ThirdMenu){
case:“房間展示”FJZS_ThirdMenu.SetActive(true);}
用戶在選擇不同的功能時(shí)伴隨著攝像機(jī)的切換,這樣可以保證用戶多視角的觀賞,增加用戶使用的自由感與體驗(yàn)感。并且用戶可以在室內(nèi)以第一人稱自主地瀏覽室內(nèi)空間,增加了用戶體驗(yàn)的沉浸感。
圖3 UI框架
圖4 俯視視角
本系統(tǒng)共設(shè)置了3個(gè)攝像機(jī),分別為第一人稱攝像機(jī)、主攝像機(jī),位于客廳與地面較近的攝像機(jī)。每個(gè)Unity3d場景會(huì)自帶一個(gè)Main Camera,將Main Camera的視口調(diào)成俯視狀態(tài),形成“上帝”視角,使得用戶整體觀賞房間戶型,對戶型一目了然。如圖4所示。當(dāng)點(diǎn)擊“房間瀏覽”功能時(shí),攝像機(jī)會(huì)切入第一人稱狀態(tài)。此過程主要是通過點(diǎn)擊按鈕控制主攝像機(jī)關(guān)閉,第一人稱攝像機(jī)打開的結(jié)果。點(diǎn)擊其他按鈕,第一人稱關(guān)閉,主攝像機(jī)再次打開。點(diǎn)擊“家具庫”功能時(shí)將關(guān)閉這兩個(gè)攝像機(jī),切換到第三個(gè)攝像機(jī)。用戶可通過按鍵“W、A、S、D、Q、E”控制該攝像機(jī)在自身坐標(biāo)系下上下前后左右的移動(dòng)。
室內(nèi)的漫游(如圖5)主要通過第一人稱來實(shí)現(xiàn)。添加第一人稱攝像機(jī),可通過添加角色插件實(shí)現(xiàn),Unity3d自帶該插件,點(diǎn)擊Create->Input pack原age->Character Controllers添加第一人稱角色即可。選擇第一人稱控制器,拖到自選位置,可調(diào)整攝像機(jī)高度,中心,最小移動(dòng)距離。該插件自帶腳本,用戶在使用第一人稱時(shí),移動(dòng)鼠標(biāo)即可控制視角自由地旋轉(zhuǎn),按下按鍵“W”前進(jìn),“S”后退,“A”向左走,“D”向右走。
圖5 第一人稱瀏覽
圖6 小地圖
小圖標(biāo)反映用戶的實(shí)時(shí)位置和朝向。如圖6中圖框所示。小地圖上的圖標(biāo)能夠?qū)崟r(shí)地映射第一人稱攝像機(jī)的位置,其中包含一種計(jì)算方法。首先獲取到鼠標(biāo)點(diǎn)擊到小地圖的坐標(biāo)(mapX,mapY),其計(jì)算方法如下:
在這里我們可以通過“真實(shí)地形”的MeshRen原der組件的bounds.size可獲得“真實(shí)地形”的寬和高(MeshRenderer.bounds.size.x,MeshRenderer.boun ds.size.z),然后通過小地圖點(diǎn)擊獲得自身的坐標(biāo)系等比例映射到真實(shí)地圖的坐標(biāo)系,計(jì)算公式如下:
因?yàn)榉块g系統(tǒng)是放在中心點(diǎn)(0,0,0),所以減去“真實(shí)地形”的一半,讓它回歸到原點(diǎn)。
圖7 實(shí)例化家具
用戶在了解房間的信息時(shí),不僅能夠觀察房間的渲染效果,還可以查看房間內(nèi)部的結(jié)構(gòu)家具、墻與地面等,對房間有更透徹的了解,增強(qiáng)用戶使用的安全感。主要代碼的實(shí)現(xiàn)具體如下:
墻紙和地面的材質(zhì)替換功能滿足用戶能夠按照自己的喜好裝飾室內(nèi)環(huán)境,提高了用戶的體驗(yàn)感,用戶自主交互設(shè)計(jì)的居室樣式更能激發(fā)用戶的滿意度和購買欲。
首先,定義了鼠標(biāo)選擇的物體及幾款材質(zhì)貼圖;
更換材質(zhì)的本質(zhì)則是獲取點(diǎn)擊物體的組件MeshRen原derer,附著給它一個(gè)新的材質(zhì)。具體代碼如下:
家具替換的交互設(shè)計(jì)不僅豐富了家裝的功能,大大刺激了用戶的參與性,任意地布置家具使得用戶身臨其境,有種對房間的掌控權(quán),更利于用戶設(shè)計(jì)出自己心目中的理想居室,獲得一種幸福感。
實(shí)例化家具:當(dāng)物體點(diǎn)擊“家具替換”->“家具庫”時(shí),會(huì)出現(xiàn)各種樣式家具的菜單,用戶根據(jù)菜單中的家具圖片選擇自己喜歡的,點(diǎn)擊該家具圖片的按鈕,點(diǎn)擊的過程即為按鈕本身添加了一個(gè)腳本,實(shí)現(xiàn)腳本即先定義了這些家具模型按鈕數(shù)組,為其添加了鼠標(biāo)監(jiān)聽事件,一旦點(diǎn)擊按鈕就會(huì)添加相應(yīng)的腳本。以其中一個(gè)Button為例:(a為引用的腳本)
床一般布置在臥室中,所以床對應(yīng)的兩個(gè)控制點(diǎn)分別在主臥、次臥。首先定義一下變量,定義3個(gè)物體,分別查找床預(yù)制體Bed1,控制點(diǎn)“zhuwo”、“ciwo”賦給定義好的那3個(gè)物體:
當(dāng)用戶點(diǎn)擊Button時(shí),系統(tǒng)從Resources文件夾中調(diào)用了家具預(yù)制體,鼠標(biāo)再次點(diǎn)擊場景中時(shí)發(fā)射射線檢測,點(diǎn)中屏幕選擇物體,這實(shí)際上是選擇碰撞器的過程,當(dāng)點(diǎn)擊預(yù)先設(shè)置好的點(diǎn)的碰撞器時(shí),實(shí)例化調(diào)用的家具模型,并在預(yù)制點(diǎn)的位置坐標(biāo)處產(chǎn)生該家具。
此外,可以通過附加在家具上的拖拽腳本對其進(jìn)行任意地?cái)[放,也可以通過控制面板(如圖7所示)對家具進(jìn)行放大縮小、水平移動(dòng)、旋轉(zhuǎn)等系列操作,當(dāng)不滿意當(dāng)前的家具布置,可鼠標(biāo)選中某個(gè)家具,按Delete建刪除即可。
基于虛擬現(xiàn)實(shí)技術(shù)的家裝設(shè)計(jì)是綜合運(yùn)用了移動(dòng)互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、BIM等新時(shí)代信息技術(shù),系統(tǒng)具有很好的沉浸性;具有很好的可交互特性,滿足了用戶的交流互動(dòng)體驗(yàn),使建筑系統(tǒng)更具吸引性,易用性;具有強(qiáng)大的多平臺(tái)特性,適用于PC端、移動(dòng)端和網(wǎng)頁端;系統(tǒng)的可視化性、信息的可查詢性為云端BIM的運(yùn)用提供了一個(gè)較好的應(yīng)用點(diǎn)。
[1] 卞峰,江漫清,桑永英,等.虛擬現(xiàn)實(shí)及其應(yīng)用進(jìn)展[J].計(jì)算機(jī)仿真,2007(06):1-4.
[2] 倪樂波,戚鵬,遇麗娜,等.Unity3d虛擬展示技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2010(12):54-55.
[3] 曲寶,趙婭,趙琦,等.基于Virtools的虛擬家居漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2009(12):130-133.
[4] 田靜.虛擬現(xiàn)實(shí)方法在智能家居控制場景中的應(yīng)用研究[J].設(shè)計(jì),2013(06):46-47.
[5] 丁妹,胡志秋.虛擬建筑模型場景漫游系統(tǒng)[J].信息技術(shù)與信息化,2005(01):46-57.
[6] 王淑鵬,董建峰,李昊翔,謝鷺洲.基于BIM的家裝設(shè)計(jì)發(fā)展研究[J].土木建筑工程信息技術(shù),2016,8(06):64-67.
[7] 張建奇,舒志強(qiáng),李智.基于BIM技術(shù)的家裝設(shè)計(jì)系統(tǒng)設(shè)計(jì)與實(shí)施[J].土木建筑工程信息技術(shù),2016,8(06):73-78.
[8] 張典華.基于Unity3d的多平臺(tái)虛擬校園設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(02):224-228.
[9] Tao wen Sun,ZhenXu,Jingyu Yuan,Chang Liu,Aizhu Ren.Virtual Experiencing and Pricing of Room Views Based on BIM and Oblique Photogrammetry,196(2016)1122-1129.
[10] 黃進(jìn),韓冬奇,陳毅能,田豐,王宏安,戴國忠.混合現(xiàn)實(shí)中的人機(jī)交互綜述[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2016,28(06):869-880.