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