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