辛獻(xiàn)杰 劉曉娜 鄭學(xué)通 王勇亮 王紹斐
【摘要】虛擬現(xiàn)實(shí)技術(shù)的迅速發(fā)展,促使汽車等產(chǎn)品的虛擬展示具備動(dòng)態(tài)交互和三維可視化等特點(diǎn)。本文采用3Ds MAX制作汽車及場(chǎng)景模型,通過Unity3D實(shí)現(xiàn)系統(tǒng)輔助模塊和汽車核心展示模塊,編譯為web Player展示插件,實(shí)現(xiàn)網(wǎng)上360°的汽車展示。系統(tǒng)交互性強(qiáng),用戶可實(shí)時(shí)更換汽車顏色,局部放大或縮小,并可從任意角度觀察汽車的內(nèi)外部信息等,既從視覺上滿足客戶的需求,又給客戶帶來更多自主挑選的機(jī)會(huì),節(jié)約購車時(shí)間。
【關(guān)鍵詞】web;Unity3D;虛擬現(xiàn)實(shí);汽車展示
1.引言
隨著居民消費(fèi)水平的不斷提高,汽車銷量逐年攀升,人們?cè)谫徿嚽坝直容^注重汽車的車型、外觀和各種性能等諸多信息,而親自到各大車行進(jìn)行實(shí)地考察,既費(fèi)時(shí)又費(fèi)力[1]。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,各種虛擬汽車展示系統(tǒng)應(yīng)運(yùn)而生,但多數(shù)系統(tǒng)只局限于二維圖片或flash動(dòng)畫的展示,無法詳細(xì)展現(xiàn)汽車的內(nèi)部特性。
虛擬現(xiàn)實(shí)技術(shù)的迅速發(fā)展,促使人們對(duì)具有動(dòng)態(tài)交互、三維可視化效果的產(chǎn)品信息的需求日益強(qiáng)烈。web三維展示技術(shù)可直觀、高效地構(gòu)建具備良好交互性和沉浸性的虛擬展示系統(tǒng),通過互聯(lián)網(wǎng)縮短人們和產(chǎn)品之間的距離,全面展現(xiàn)產(chǎn)品的各項(xiàng)性能。通過該技術(shù)實(shí)現(xiàn)的汽車展示系統(tǒng),不僅使用戶提早看到汽車模型,又給廠商創(chuàng)造了一種新的營銷方式,減少企業(yè)的銷售成本,提高了企業(yè)競(jìng)爭(zhēng)力[2]。本文建立了一個(gè)基于web的虛擬現(xiàn)實(shí)汽車展示系統(tǒng),交互性強(qiáng),用戶可使用任意主流瀏覽器高速、便捷地瀏覽系統(tǒng)信息。其中,第一部分對(duì)全文進(jìn)行了概述,第二部分介紹了系統(tǒng)的整體結(jié)構(gòu),第三部分重點(diǎn)闡述了系統(tǒng)研發(fā)過程中用到的關(guān)鍵技術(shù),最后得出結(jié)論。
2.系統(tǒng)總體結(jié)構(gòu)
web虛擬現(xiàn)實(shí)汽車展示系統(tǒng)結(jié)構(gòu)可分為三個(gè)部分:模型制作、展示系統(tǒng)制作、web支撐環(huán)境。系統(tǒng)結(jié)構(gòu)圖如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)圖
模型制作:主要提供系統(tǒng)展示所需汽車及場(chǎng)景模型,通過3DS MAX制作導(dǎo)出fbx文件,并利用Unity3D將fbx文件轉(zhuǎn)換成可動(dòng)態(tài)加載的assetbundle格式;
展示系統(tǒng)制作:主要通過Unity3D制作系統(tǒng)展示界面、搭建三維場(chǎng)景等,并編輯系統(tǒng)核心算法及相應(yīng)的交互功能,最后打包為一個(gè)能夠?qū)崿F(xiàn)動(dòng)態(tài)加載3D模型的Web Player展示插件;
web支撐環(huán)境:主要由瀏覽器可以解釋執(zhí)行的HTML頁面以及Unity3D 開發(fā)的Web Player展示插件組成,并由XML負(fù)責(zé)汽車展示信息的存儲(chǔ)、組織和管理。
web汽車展示系統(tǒng)的研發(fā)流程圖如圖2所示。
3.關(guān)鍵技術(shù)分析
3.1 3Ds MAX模型制作
3D Studio Max,常簡(jiǎn)稱為3Ds MAX,是一款基于PC系統(tǒng)的三維動(dòng)畫渲染和制作軟件。廣泛應(yīng)用于影視、工業(yè)設(shè)計(jì)、建筑設(shè)計(jì)、三維動(dòng)畫、游戲、輔助教學(xué)以及工程可視化等領(lǐng)域。
根據(jù)要展示汽車及場(chǎng)景特點(diǎn),本文采用3Ds MAX分別設(shè)計(jì)開發(fā)相應(yīng)的三維模型,以達(dá)到理想的真實(shí)感效果。通過3Ds MAX制作模型并導(dǎo)出格式為fbx的文件,再通過Unity3D轉(zhuǎn)換為可識(shí)別格式。模型中的動(dòng)作是通過自動(dòng)識(shí)別來播放模型文件中的指定動(dòng)作,如打開車門等。通過3D模型的制作完成動(dòng)作的設(shè)定,從而達(dá)到更優(yōu)的交互效果。模型制作不是本文闡述的重點(diǎn),在這里不再詳述。
圖2 web汽車展示系統(tǒng)研發(fā)流程圖
3.2 Unity3D開發(fā)展示系統(tǒng)
Unity3D是一個(gè)多平臺(tái)的游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎,具有更優(yōu)越的效果和更高的擴(kuò)展空間。對(duì)DirectX和OpenGL 擁有高度優(yōu)化的圖形渲染管道。支持所有主要文件格式,并能和大部分相關(guān)應(yīng)用程序協(xié)同工作。Unity內(nèi)置的NVIDIA、PhysX物理引擎能夠帶來逼真的互動(dòng)感覺,提供了具有柔和陰影與烘焙lightmaps的高度完善的光影渲染系統(tǒng),非常適合產(chǎn)品三維虛擬展示在交互訪問和逼真表現(xiàn)的要求。可發(fā)布場(chǎng)景至Windows、iPhone和Android等平臺(tái),也可以利用Unity web player插件發(fā)布網(wǎng)頁應(yīng)用。在網(wǎng)絡(luò)方面,Unity3D提供了強(qiáng)大的可視化編輯器和語言層面的網(wǎng)絡(luò)類,腳本采用Javascript、C#、Boo等語言,常用來快速制作三維視頻游戲、信息可視化等互動(dòng)內(nèi)容[2]。
本文通過Unity3D進(jìn)行3D模型格式轉(zhuǎn)換、系統(tǒng)輔助模塊和展示模塊設(shè)計(jì)以及相關(guān)核心算法的編寫,采用C#作為腳本語言。
3.2.1 3D模型格式轉(zhuǎn)換
通過Unity3D將3Ds MAX導(dǎo)出的fbx模型文件轉(zhuǎn)換成可動(dòng)態(tài)加載的assetbundle格式。通過添加代碼,在Untiy3D的菜單“Assets”中添加“Build AssetBundle From Selection - Track dependencies”和“Build AssetBundle From Selection - No dependency tracking”兩個(gè)選項(xiàng)(如圖3所示),可直接實(shí)現(xiàn)對(duì)選中模型的格式轉(zhuǎn)換。
格式轉(zhuǎn)換主要代碼如下:
3.2.2 系統(tǒng)輔助模塊的設(shè)計(jì)
通過Unity3D設(shè)計(jì)汽車展示系統(tǒng)界面,可同時(shí)實(shí)現(xiàn)不同場(chǎng)景和光照天氣的搭配、汽車顏色的實(shí)時(shí)變換、汽車部分動(dòng)作展示以及相關(guān)幫助信息。
汽車展示系統(tǒng)界面如圖4所示。
展示區(qū)域底部為菜單面板,當(dāng)鼠標(biāo)離開菜單區(qū)域時(shí),菜單面板自動(dòng)隱藏。用戶可以直觀地瀏覽汽車,根據(jù)菜單提示實(shí)時(shí)地進(jìn)行操作。下面對(duì)基本展示功能予以說明。
(1)鼠標(biāo)操作:用戶可通過鼠標(biāo)的左、中、右三鍵來控制產(chǎn)品模型運(yùn)動(dòng)。點(diǎn)擊并拖動(dòng)鼠標(biāo)的左鍵可以在360°視角內(nèi)觀察模型各個(gè)部位的細(xì)節(jié);按住鼠標(biāo)中鍵可移動(dòng)模型在展示場(chǎng)景中的位置;按住鼠標(biāo)右鍵進(jìn)行拖動(dòng),可對(duì)模型進(jìn)行拉近或拉遠(yuǎn)操作。
(2)選擇場(chǎng)景:可在展示區(qū)內(nèi)加載不同的場(chǎng)景,如草地、樓宇、展臺(tái)等,以實(shí)現(xiàn)更加豐富的展示效果。
(3)光照天氣:可隨意變換不同的天氣狀態(tài),使汽車模型在不同環(huán)境下進(jìn)行展示,增強(qiáng)展示效果。
(4)顏色調(diào)配:滑動(dòng)調(diào)色板相應(yīng)按鈕,可對(duì)產(chǎn)品模型的主體顏色進(jìn)行實(shí)時(shí)調(diào)配,以滿足客戶的不同喜好。
(5)局部動(dòng)作:若模型自帶動(dòng)作,系統(tǒng)將自動(dòng)將動(dòng)作信息添加到局部動(dòng)作菜單中,單擊菜單中對(duì)應(yīng)的動(dòng)作,如圖5所示,即可播放模型里自帶的動(dòng)作動(dòng)畫。
圖5 局部動(dòng)作效果
3.2.3 系統(tǒng)核心算法
(1)模型居中顯示
當(dāng)模型動(dòng)態(tài)地加載到展示界面時(shí),最主要的問題就是讓模型能夠出現(xiàn)在界面的中心位置。因此模型居中顯示是一個(gè)關(guān)鍵算法,通過scaleConst這個(gè)常量來約束模型的尺度,從而實(shí)現(xiàn)模型的居中置位。主要代碼如下所示:
(2)調(diào)用模型中的動(dòng)畫信息
在3dsMax或unity3d軟件中,可為3D模型設(shè)置動(dòng)畫。如果模型文件里附帶動(dòng)畫信息,本系統(tǒng)可自動(dòng)檢測(cè),并將其添加到“局部動(dòng)作”菜單列表,以便用戶進(jìn)行操作。主要代碼如下所示:
3.2.4 將展示系統(tǒng)編譯打包
在Unity3D中研發(fā)的展示系統(tǒng),要發(fā)布到web就必須將其打包為一個(gè)能夠?qū)崿F(xiàn)動(dòng)態(tài)加載3D模型的Web Player展示插件,如圖6所示,選擇“Platform”中的“Web Player”,單擊Build,進(jìn)行編譯打包。
圖6 打包為Web Player展示插件
3.3 構(gòu)建web支撐環(huán)境
web支撐環(huán)境主要由瀏覽器可以解釋執(zhí)行的HTML頁面以及Unity3D開發(fā)的Web Player展示插件組成,并由XML負(fù)責(zé)汽車展示信息的存儲(chǔ)、組織和管理。
web汽車展示系統(tǒng)支撐環(huán)境界面如圖7所示。
圖7 web支撐環(huán)境
3.3.1 web環(huán)境調(diào)用展示系統(tǒng)
在Unity3D中使用以下程序調(diào)用系統(tǒng)入口:
HTML頁面中的getUrl函數(shù)為整個(gè)系統(tǒng)總?cè)肟?,其中訪問絕對(duì)路徑使用php直接獲取,代碼如下所示:
在Unity3D中,獲取文件名、主機(jī)名:
3.3.2 XML節(jié)點(diǎn)記錄
XML是可擴(kuò)展標(biāo)記語言,標(biāo)準(zhǔn)通用標(biāo)記語言的子集,一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。與其他數(shù)據(jù)庫不同,它僅僅是存儲(chǔ)數(shù)據(jù)。
在展示系統(tǒng)中展示的汽車模型基本信息通過XML節(jié)點(diǎn)進(jìn)行記錄, 一條汽車模型信息的典型XML節(jié)點(diǎn)格式如下所示:
這些屬性分別記錄了汽車的名稱、上市年份、排量、價(jià)格、變速箱、百公里油耗、長(zhǎng)寬高等信息, 這些信息添加到XML數(shù)據(jù)庫并存儲(chǔ)于網(wǎng)站服務(wù)器, 供展示系統(tǒng)在初始化時(shí)載入并進(jìn)行解析。
4.結(jié)語
隨著網(wǎng)絡(luò)及3D展示技術(shù)的快速發(fā)展,產(chǎn)品在線三維展示、實(shí)時(shí)交互等功能已成為越來越重要的需求。
本文研究的基于Unity3D的虛擬現(xiàn)實(shí)web汽車展示系統(tǒng)能夠利用Untiy3D技術(shù)建立產(chǎn)品的真三維模型的交互展示及跨平臺(tái)運(yùn)用,能夠完成產(chǎn)品的外觀展示及相關(guān)交互功能。通過web網(wǎng)絡(luò)的展示,讓用戶不受時(shí)間、空間的限制,與產(chǎn)品進(jìn)行一種動(dòng)態(tài)交互,節(jié)約購車時(shí)間,給基于web的3D展示技術(shù)在汽車生產(chǎn)銷售領(lǐng)域的發(fā)展帶來新的前景。
參考文獻(xiàn)
[1]石娟娟.基于WEB3D的汽車虛擬展示系統(tǒng)的研究[C].內(nèi)蒙古:內(nèi)蒙古大學(xué)出版社,2009:76-78.
[2]倪樂波,戚鵬等.Unity3d產(chǎn)品虛擬展示技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2010(9):54-55.
[3]任國棟,陳林華等.基于Unity3D的虛擬博物館信息可視化系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(9):86-90.
作者簡(jiǎn)介:
辛獻(xiàn)杰(1962-),男,大學(xué)本科,畢業(yè)于海軍航空工程學(xué)院自動(dòng)控制工程專業(yè),現(xiàn)供職于煙臺(tái)生產(chǎn)力促進(jìn)中心,主要從事先進(jìn)制造技術(shù)發(fā)展研究、科技體制改革、科技發(fā)展戰(zhàn)略研究、管理信息系統(tǒng)與數(shù)據(jù)庫研究等。
通訊作者:劉曉娜(1986-),女,山東煙臺(tái)人,畢業(yè)于沈陽航空航天大學(xué)計(jì)算機(jī)應(yīng)用技術(shù)專業(yè),碩士研究生,現(xiàn)供職于煙臺(tái)生產(chǎn)力促進(jìn)中心,主要從事虛擬現(xiàn)實(shí)系統(tǒng)研發(fā)等。