
摘要:汽車的實體展示主要是依托汽車展廳來實現(xiàn)的,但通過展廳的方式在實際展示中存在空間、時間、地域的限制及成本高昂等問題。隨著虛擬現(xiàn)實技術(shù)的快速發(fā)展,文章使用3DMax來制作汽車模型,利用Unity3D虛擬開發(fā)平臺來完成各種元素的整合、材質(zhì)光效的制作、運動動畫的實現(xiàn)以及人車交互效果的達成,從而設(shè)計一款汽車虛擬展示系統(tǒng)。該系統(tǒng)可以彌補汽車展廳存在的各種不足,使用戶獲得更好的感觀體驗。
關(guān)鍵詞:Unity3D;汽車;虛擬展示系統(tǒng)
中圖分類號:TP311" 文獻標志碼:A
0 引言
隨著科學技術(shù)的飛速發(fā)展,虛擬現(xiàn)實(Virtual Reality,VR)技術(shù)已經(jīng)融入各行各業(yè)乃至人們衣食住行的方方面面,成為現(xiàn)代社會的一大熱門技術(shù)。虛擬現(xiàn)實技術(shù)能夠提供一種沉浸式的環(huán)境,讓用戶可以全方位、無干擾地體驗展覽內(nèi)容,個性化的設(shè)置使得用戶能夠按照自己的節(jié)奏和興趣瀏覽展品,呈現(xiàn)一種全新的、高度互動的體驗方式。Unity3D是Unity Technolgies公司開發(fā)的3D虛擬現(xiàn)實開發(fā)平臺,能夠?qū)崿F(xiàn)桌面式虛擬現(xiàn)實系統(tǒng)。這種系統(tǒng)是以計算機屏幕為窗口,采用3D圖形技術(shù),建立一個三維立體空間的交互場景,用戶可以通過鼠標和鍵盤來操作和體驗虛擬場景,達到交互的效果。因此,通過Unity3D來設(shè)計開發(fā)汽車虛擬展示系統(tǒng)是不錯的選擇。
1 汽車展廳存在的不足
汽車展廳存在的不足主要表現(xiàn)在3個方面。
1.1 空間限制
汽車展廳受限于實體空間的大小和布局,無法展示大量的實物,往往某種品牌的車輛只能擺下10臺左右,無法涉及各種車型、顏色、配置等內(nèi)容,觀眾只能看到車輛的一小部分信息,很多感興趣的內(nèi)容無法通過展廳獲取。
1.2 時間和地域限制
汽車展廳的開放時間和地點受到限制,觀眾需要在特定的時間和地點進行參觀。比如汽車展廳通常在節(jié)假日開放展示,但很多觀眾因為旅游、探親、工作等原因,沒有辦法抽出時間來現(xiàn)場參觀。還有的觀眾居住地距離展廳較遠,需要花費比較多的時間在往返的路上,因此有的參觀者直接放棄觀展的打算,影響了參觀的客流量。
1.3 成本高昂
汽車展廳需要投入大量的資金用于展覽策劃、運輸、存儲和管理等方面的費用開銷。一種品牌車輛花費在場地、宣傳費用、展位搭建、展具物流、人員餐飲、發(fā)布會等各種支出,一次展覽就可以達到幾十萬元。
2 汽車虛擬展示系統(tǒng)設(shè)計
汽車虛擬展示系統(tǒng)不受空間限制,用戶能夠自主掌握體驗時間,制作成本與汽車展廳相比有了極大的降低。用戶只需要運行計算機上的虛擬展示系統(tǒng)應(yīng)用程序,就可以靈活便捷地觀看具體的展示效果。考慮到汽車需要進行靜態(tài)展示,同時用戶也需要看到汽車動態(tài)行駛的狀態(tài),所以本系統(tǒng)設(shè)計了汽車靜態(tài)展示模塊和汽車動態(tài)展示模塊,由這2個模塊共同實現(xiàn)了汽車虛擬展示系統(tǒng)的所有功能。
3 汽車靜態(tài)展示模塊實現(xiàn)
3.1 車體材質(zhì)的選擇
車體材質(zhì)要實現(xiàn)在燈光下能夠?qū)崟r反射周圍環(huán)境以及在不同顏色之間進行柔和的過渡切換。本文選擇Unity3D著色器Shader[2]中的車漆CarPaint,CarPaint具有2組色彩屬性,分別是(Base Color 1,Tone 1,Tone 2)和(New Base Color,New Tone 1,New Tone 2)。通過設(shè)置這2組屬性,可以將不同的車體顏色存儲在系統(tǒng)中。CarPaint的Lerp屬性可以控制不同顏色間進行漸變的快慢程度,而通過設(shè)置CubeMap屬性則可以實現(xiàn)車體在燈光下的反射效果。
3.2 車體陰影效果實現(xiàn)
車體在聚光燈下逼真的陰影效果可以通過Unity3D系統(tǒng)自帶的聚光燈對象[1]來進行實時生成,但用這種方式生成的陰影需要依靠Unity3D系統(tǒng)大量的實時計算,消耗了大量的運行資源,影響了其他功能的運作,最終影響整體的虛擬效果呈現(xiàn),因此本文提出一種通過手動制作陰影貼圖來實現(xiàn)陰影效果的方法。雖然與Unity3D通過燈光來產(chǎn)生陰影相比,手動制作陰影貼圖從制作角度來看的確步驟有所增加,但卻解決了燈光陰影過高耗費系統(tǒng)運行資源的問題。陰影貼圖效果實現(xiàn)步驟如下:
(1)在3DMax中,將視圖切換到汽車模型的頂視圖,通過渲染汽車模型,獲得頂視圖。
(2)在Photoshop中,通過調(diào)整色階的level參數(shù),將汽車的頂視圖全部轉(zhuǎn)為黑色,之后對圖片進行高斯模糊和透明度修改,設(shè)定高斯模糊的半徑為1.0像素,設(shè)定透明度為50%,按住shift鍵和鼠標左鍵生成一個正方形選框,將制作的陰影圖片放入選框進行裁減,同時改變圖片大小,長寬全部設(shè)為256像素,最后以.png的格式完成保存。
(3)在Unity3D中新建一個Plane對象,將該對象置于汽車模型下方。在資源面板中新建一個材質(zhì),將已經(jīng)完成的陰影貼圖設(shè)置在該材質(zhì)的Texture屬性上,之后將該材質(zhì)通過鼠標拖放的方式,置于Plane對象的Material屬性上,同時將Shader屬性設(shè)置為Transparent下的Diffuse,最后等比縮放Plane對象,貼合地放置在汽車的車底位置,陰影效果制作完成。
3.3 車身燈光反射效果實現(xiàn)
汽車車身需要在聚光燈的照射下產(chǎn)生燈光反射效果,同時伴隨車身在旋轉(zhuǎn)展臺上位置角度的變化,車身的反光效果也要實時地進行改變。要實現(xiàn)這種復雜的光感效果,就需要用到CubeMap貼圖集,通過CubeMap來記錄車身周圍環(huán)境的實時信息。CubeMap貼圖集制作步驟如下:
(1)首先,在3DMax中創(chuàng)建一個和Unity3D類似的展示環(huán)境,用VR-面光源替代Unity3D中的聚光燈對象,用一臺攝像機來替代Unity3D中的汽車,同時設(shè)定V-Ray渲染器為3DMax的默認渲染器。其次,新建一個Reflect/Refract反光材質(zhì),將材質(zhì)的貼圖尺寸設(shè)定為512像素,并確定貼圖來源為“從文件獲取”以及設(shè)定貼圖的存放位置。最后,選中攝像機,點擊“Pick Object and Render Maps”按鈕,就能通過渲染得到6張記錄周圍環(huán)境的貼圖。
(2)在Unity3D的資源面板新建一個CubeMap貼圖集,依次將6張環(huán)境貼圖拖放到貼圖集的Right、Left、Top、Bottom、Front、Back屬性上,最后將完成的CubeMap貼圖集通過鼠標拖放的方式,設(shè)置到車身使用的車漆材質(zhì)CarPaint中的CubeMap屬性上,車身燈光反射效果制作完成。
3.4 車身顏色變化實現(xiàn)
汽車需要展示不同的顏色效果,車身的顏色變化需要柔和漸變,這里就需要對車身的CarPaint車漆材質(zhì)進行相應(yīng)的設(shè)置,同時用到Unity3D提供的動畫剪輯功能,具體實現(xiàn)步驟如下:
(1)在Unity3D中,通過對CarPaint車漆材質(zhì)的不同顏色進行賦值,確定車身色彩變化前后用到的顏色。
(2)首先,在Unity3D的動畫面板中新建動畫剪輯changeColor。其次,在面板中找到CarPaint車漆材質(zhì)的Lerp屬性,設(shè)定Lerp值為0,表示車身色彩變化前的顏色,設(shè)定Lerp值為1,表示車身色彩變化后的顏色。最后,由Lerp屬性建立動畫曲線,移動時間軸到2 s的位置設(shè)定Lerp值為1,運行該動畫,車身顏色變化效果實現(xiàn)。
3.5 人車交互效果實現(xiàn)
汽車靜態(tài)展示提供了一種人機交互效果,即用戶通過使用鼠標能夠自如地操控汽車,進而從任意角度觀看欣賞汽車,具體實現(xiàn)步驟如下:
首先,在Unity3D的資源面板中導入腳本程序包Scripts[1]。其次,選擇攝像機對象Main Camera,同時在場景視圖中設(shè)定Main Camera的拍攝對象為汽車,并添加組件Mouse Orbit。最后,在場景對象面板中,將汽車對象用鼠標拖動的方式移動到Main Camera對象的target屬性上,這樣人車交互制作完成。
4 汽車動態(tài)展示模塊實現(xiàn)
4.1 汽車車輪轉(zhuǎn)動效果實現(xiàn)
汽車動態(tài)展示離不開車輪轉(zhuǎn)動效果,具體制作步驟如下:首先,在Unity3D中選中汽車的車輪對象。其次,在Unity3D動畫面板中新建動畫剪輯chelun,預設(shè)車輪繞著坐標軸的X軸旋轉(zhuǎn),由Rotation.x屬性建立動畫曲線,移動時間軸到1.5 s的位置,設(shè)定Rotation.x屬性值在原有的基礎(chǔ)上增加360。基于汽車車輪的循環(huán)滾動,在資源面板中選中chelun動畫,在對象屬性面板中將該動畫的Wrap Mode屬性設(shè)為Loop。最后,再次選中車輪對象,添加Animation組件,將 chelun動畫通過鼠標拖動到車輪屬性面板Animation組件的Animation屬性上,車輪轉(zhuǎn)動效果制作完成。
4.2 車頭燈光效制作
汽車在正常行駛中需要車頭燈光效,Unity3D提供的Lens Flare[3]鏡頭光斑特效組件可以實現(xiàn)這一效果,實現(xiàn)步驟如下:首先,在Unity3D的資源面板中新建一個Lens Flare特效資源,同時命名該資源為light,通過鼠標將車燈效果貼圖集laser.dds拖到light的屬性FlareTexture上。其次,在Unity3D中新建一個對象并命名為chedeng,給chedeng對象添加一個Lens Flare組件,并將燈光特效資源light拖到chedeng的Lens Flare組件的屬性Flare上,這樣車頭燈光效便制作完成,如圖1所示。
4.3 汽車隧道行駛效果實現(xiàn)
汽車的行駛效果設(shè)定在隧道中進行,為了使汽車的運動和真實情況接近,本文通過讓汽車所在的隧道向汽車行駛的反方向進行運動,最終產(chǎn)生汽車直線正向行駛的效果,具體實現(xiàn)步驟如下:
(1)在Unity3D場景對象面板中選中隧道對象,之后在動畫面板中新建動畫剪輯move,因為汽車前進方向是坐標Z軸的正方向,根據(jù)動畫設(shè)計,隧道的運動方向就是坐標Z軸的負方向。
(2)在Unity3D動畫面板中找到Position.z屬性,移動時間軸到1 s,再將Position.z屬性值設(shè)為-10。之后在資源面板中選中move動畫剪輯,將move的Wrap Mode屬性設(shè)為Loop。最后通過鼠標拖動該動畫至隧道對象的Animation組件的Animation屬性上。
(3)在Unity3D中新建一個對象資源,將隧道對象通過鼠標拖動到新建的對象下,使其成為該對象的子物體,之后將該對象復制多份,并將它們拼接成一條供汽車行駛的完整隧道,汽車隧道行駛效果制作完成。
5 系統(tǒng)測試與發(fā)布
在Unity3D中,點擊File-gt;Buildamp;Run,在Platform中選擇PC.Macamp;Linux Standalone選項,之后點擊Switch Platform,就可以將此項目構(gòu)建為PC端的展示平臺。點擊Build and Run,選擇保存目錄,就可以保存并運行。至此,汽車虛擬展示系統(tǒng)制作完成。
6 結(jié)語
Unity3D是一款功能強大的虛擬現(xiàn)實開發(fā)平臺,可以將3D模型、動畫和交互式元素進行整合,制作出逼真的虛擬展示效果,解決傳統(tǒng)汽車展廳存在的各種不足。各種先進技術(shù)包括高清渲染管線(High Definition Render Pipeline,HDRP)、可以支持光線追蹤的深度學習超級采樣(Deep Learning Super Sampling,DLSS)算法等的不斷出現(xiàn),使虛擬展示系統(tǒng)能夠獲得3A級的畫質(zhì)效果。同時,Unity3D支持Mac OS、Windows等操作系統(tǒng),使得系統(tǒng)能夠在包括手機、PC、Web、XR等多種平臺上流暢運行,最終讓越來越多不同平臺的用戶可以享受到汽車虛擬展示系統(tǒng)帶來的良好感觀體驗。
參考文獻
[1]劉國柱.UNITY3D/2D游戲開發(fā)從0到1[M].北京:電子工業(yè)出版社,2018.
[2]熊新科.UNITY3D內(nèi)建著色器源碼剖析[M].北京:人民郵電出版社,2019.
[3]周頔,孫辛欣,盛歆漪.UNITY3D PLAYMAKER游戲設(shè)計與實現(xiàn)[M].北京:電子工業(yè)出版社,2019.
Design and implementation of automobile virtual display system based on Unity3D
Abstract: ""The physical display of cars is mainly achieved through car showrooms, but there are limitations in space, time, and geography, as well as high costs in actual display through showrooms. With the rapid development of virtual reality technology, this article uses 3DMax to create car models, and uses the Unity3D virtual development platform to integrate various elements, create material lighting effects, implement motion animations, and achieve human vehicle interaction effects. Therefore, a car virtual display system is designed. By using this system, various shortcomings of car showrooms can be compensated for, and users can obtain a better visual experience.
Key words: Unity3D; automobile; virtual display system