胡曉雪
(山東工藝美術學院,山東濟南 250000)
虛擬現實系統是通過計算機、人機接口技術、多媒體技術、立體影像技術、傳感與測量技術、動作識別技術語音交互技術等構建出的一個能夠再現人類想象空間的系統,其呈現出的視覺效果令人震撼。
1993 年,美國科學家Burdea G.和Philippe Coiffet在世界電子年會上提出了虛擬現實的三個最突出的特征:“沉浸感(Immersion)”“構想性(Imagination)”“交互性(Interactivity)”,即虛擬現實的“3I”特性。
在虛擬現實技術中,“沉浸感”指的是某種技術手段最終達到的效果,是虛擬現實世界力爭追求的技術體驗。用戶通過VR 設備,進入計算機營造的立體三維虛擬場景中,成為虛擬場景的一部分,全身心的投入到虛擬環境設定好的程序里。用戶可以在三維虛擬場景中自由行走、觀看,還可以參與場景設定的情節,好比真實世界的一切[1]。
虛擬現實技術里的“沉浸感”是衡量虛擬現實技術性能好壞的一個標準。用戶之所以能夠產生“沉浸感”是因為用戶對虛擬的環境產生了現實世界感覺的錯覺。沉浸感包含了多種特征,其中多感知性(Multi-Sensory)和自主性(Automony)是最為關鍵的兩個特征。多感知性是指除計算機體驗給人帶來的主觀視知覺外,還應具有其他“四感”的感知性。理想中的虛擬現實技術應該是包羅萬象的,能夠體驗真實世界的“五感”。自主性則是虛擬場景在與人們交流互動時的動態表現程度,最大限度的服從自然規律或設計師設定的規律。
構想性指的是在現實世界中無法實現或不存在的創意構想,通過虛擬現實技術在三維的虛擬環境中實現。用戶可以大膽想象并創造出真實性與非真實性并存的想象空間。
交互性是指用戶通過VR 設備用人類的自然屬性與虛擬環境中的事物進行交流互動,能夠感受到虛擬的物體屬性,如重量、外形等。虛擬現實技術的最大特點就是可以與用戶直接進行交互。虛擬現實技術的出現改變了長久以來“以計算機為主體”的理念,開始接受“人是信息環境的主體”。虛擬現實技術使人與虛擬世界建立起了多維度交流互動的橋梁,使人機交互提升到了一個新的層面。
20 世紀90 年代,計算機在各個領域的應用得到普及,計算機技術也得到前所未有的迅猛發展,這為二維信息、三維信息整合成為虛擬現實增加了可能性;進入21 世紀以后,大數據信息處理速率顯著提高,虛擬現實技術的應用也逐步出現在教育、軍事、娛樂、設計、商業、藝術等領域。
1.2.1 教育領域
1985 年,美國國立醫學圖書館嘗試使用虛擬現實技術進行指導教學,運用虛擬現實技術開展仿真的人體解剖教學課程;21 世紀,網絡高速發展,虛擬現實技術在教育方面的實際運用日趨廣泛。虛擬現實的教學技術讓用戶自然而然的、無障礙的與三維虛擬場景中的各個事物進行交流互動,甚至還可以轉變參與形式,多元化的參與教學與學習進程。虛擬現實教學技術是一種可以直觀的呈現出多維度訊息的培訓學習方式,使用戶更有效、更迅速地掌握一門新技能。
1.2.2 軍事領域
傳統的大規模軍事演習不僅消耗大量物資且安全得不到保障。為了彌補這一缺陷,虛擬現實作戰系統應運而生。虛擬現實作戰系統指的是在計算機中創建一個模擬現實戰場的虛擬場景,作戰人員可通過模擬場景得到訓練。同時,在這個線上的虛擬場景中,通過模擬與敵人作戰,還可以檢測、評測作戰武器的綜合性能。在我國同樣也非常重視虛擬戰場的研究工作,如模擬飛行的虛擬仿真系統,飛行虛擬仿真系統能夠讓操作者產生置身云端的感覺,使操作者的視覺、聽覺與現實無異,開啟了虛擬現實在軍事領域培訓的新模式。
1.2.3 醫療領域
現今,虛擬現實技術已廣泛開發使用于醫療手術過程中的方方面面。虛擬現實技術可提前使醫生進行手術實施演練,還可為實際治療提供輔助信息和輔助操作,規避手術風險。醫生運用虛擬現實技術進行手術實操訓練,通過3D 模型模擬患者病灶,設計出適用于患者的手術切口位置及角度。醫生在VR 設備的輔助下,置身于虛擬手術臺上,全方位的進行虛擬手術演練,提前熟悉手術流程,反復分析與推敲患者病情,最終選擇合理的治療方案,減少給患者帶來的損傷,降低手術出錯率。
1.2.4 設計領域
虛擬現實技術應用于建筑設計、產品設計、室內設計、展示設計、游戲開發等領域。在德國的高端汽車制造行業中,絕大多數的制造商都設有專門的虛擬現實技術研發機構,為汽車設計研發提供專業的技術服務。在虛擬現實技術的加持下,汽車的設計造型、內飾外飾、零部件等設計得到反復試驗達到最優。空氣動力學的試驗和安全試驗也可通過虛擬現實技術完成,節約了大量的人力物力,縮短了汽車的研發時間。虛擬現實技術在建筑設計領域的應用也起到不可忽視的作用,改變了先前二維圖紙枯燥的表達方式,通過可視化的三維技術,將虛擬建筑造型立體的展現在客戶眼前。同時,它還可以模擬大型機械的施工操作,從而預測機械施工過程中可能出現的問題,提前預防并解決問題。
三維模型是虛擬現實場景運行的視覺呈現基礎,也是虛擬現實場景在VR 設備中實現的基礎,關乎虛擬現實空間的實際體驗。在虛擬現實技術中,一個三維虛擬環境的建立主要包括環境模型的建立和環境漫游程序的編寫[2]。用戶在體驗虛擬現實場景時,所呈現出來的一切都是由三維建模技術創建,可見三維模型的重要地位。
3DMax 是一款基于計算機系統且專用于三維模型制作與動畫渲染的軟件,建模功能強大,材質種類豐富。設計師使用3DMax 軟件能夠建造出富有創造力且逼真的模型作品,可以充分展現設計師的創意構思。
構建三維虛擬現實系統就是通過計算機技術營造出能夠呈現真實世界自然屬性的虛擬環境系統。當然,三維模型在模擬真實世界時并不是越逼真越好,而是要結合系統運行的速率與虛擬環境的需求,在保障虛擬現實環境顯示的可實施性前提下,從中找到一個最佳合理方案。
模型創建之前一般會在3DMax 中導入一張CAD平面圖,圖片的在3DMax 上的三維坐標設置為(0,0,0)原點,并設置好模型創建的單位,以便模型的建立。
創建模型時,要注意模型中面與面的距離不能太近,兩個面之間的間距約是虛擬場景最大尺度的1/2000。若場景中面的距離過近,場景在實際應用過程中就會出現畫面的閃爍。為提高虛擬現實技術中交互場景的運轉速率,應降低模型中面的數量以及刪減場景中看不見的面。模型創建完成時需反復檢查,不能出現共用面、反面、漏面、破面等。重復的物體可以復制,不用重復建立,減少資源的消耗。模型創建時,先對意向概念進行分析,將模型的塊面進行劃分,利用3DMax 修改器中的樣條線(Edit spline)和可編輯多邊形(Editable Ploy)建模。盡量避免使用可編輯網格(Editable Mesh)建模,避免三角面的出現,如圖1。

圖1 模型場景的建立
模型創建完成后,為提高虛擬現實場景運轉速率,降低VR 設備與計算機硬件的負荷,還需要對模型再進一步優化。結構復雜的模型有著復雜的面和頂點結構,對于計算機渲染來說,復雜的模型會帶來更多的運行負擔,影響環境渲染的效率和質量。因此,為了降低模型的網格面數,通過安裝使用Polygon Cruncher 插件來提高計算機軟件運行時的渲染性能,提高渲染速率[3]。Polygon Cruncher 插件較其他同類插件的優勢就在于不影響模型原有結構的情況下,優化減少模型的面數。當然,我們也可用紋理貼圖來替代,利用渲染器中的凹凸與置換命令,使得模型跟隨貼圖紋理變化,減少因建模而產生的模型面與頂點數量。
模型優化之后需要根據物體特性給素模附上對應材質。材質編輯一般使用Vray 標準材質球,也可使用3DMax 自帶的多維/子對象材質球,使用這兩種材質球的3DMax 格式文件導出與Unity3D 通用的文件格式,導出文件格式為FBX,再把通用格式FBX 文件導入到Unity3D 虛擬引擎中,這樣的軟件之間的導出轉化就不會使材質與模型失去關聯。
模型經過創建、優化和附材質后,需將模型塌陷[4]。在3DMax 中,模型的每一次修改都會被記錄下來,如果記錄較多就會占用系統資源,進而導致計算機運行緩慢,所以模型需要用塌陷命令來解決這一問題。
以上步驟完成后,最終需要將模型導出,在3DMax里將模型文件導出為軟件轉換的通用格式,再由通用格式文件導入到Unity3D 虛擬引擎中,再進行下一步的操作。FBX 格式是軟件之間進行模型、動作、材質等信息轉化的通用格式,如3DMax、MAYA 文件之間的互轉等。模型導出時,要注意彈出對話框中的參數設置,需勾選嵌入的媒體選項,如若沒有勾選,模型導出則會使模型的紋理貼圖失去關聯。3DMax 和Unity3D的X、Y、Z 坐標軸方向不同,需轉化成一致方向,因此,軸轉化中向上軸要勾選Y-up,其他設置保持默認。
模型完成之后,需導入到虛擬引擎之中。Unreal Engine 和Unity3D 是現在最常用的兩款虛擬引擎,Unreal Engine 是世界范圍內為數不多的較有影響力的游戲引擎之一,在虛擬現實技術的游戲引擎市場中占有較大份額。Unreal Engine 虛擬引擎的畫面效果可達到較高的3A 游戲水準,有著強大的材質編輯器,能夠輕松獲得電影級效果。Unity3D 是Unity Technologies 開發的一款跨平臺、完全集成的專業級虛擬引擎,包含了整合的編輯器、跨平臺發布、地形編輯、著色器、腳本等特性。Unity3D 最明顯的優勢就是可以讓開發者在多平臺之間進行開發,避免了開發者浪費更多的時間在操作方式、硬件條件、屏幕尺寸上等。
Unity3D 虛擬引擎是由許多場景組成的,開發者可以根據實際需要來添加如燈光、樹木、車等組件,而這些組件上又可以添加如觸發盒子、聲音、碰撞、重力、粒子特效等,功能強大且便利。
將3DMax 模型格式轉化為通用格式FBX 格式,再由FBX 格式的通用格式文件導入到Unity3D 虛擬引擎之中,從而實現軟件之間格式的兼容互換。導出后的FBX格式在導入到Unity3D 虛擬引擎時,應將Inspector 面板里面的Generate Lightmap UVs 選項勾選,勾選之后的模型在烘焙光照貼圖時會呈現出更為逼真的視覺效果。燈光也需要根據場景需要來添加:方向光(Directional)、點光(Point)、聚光(Spot)、面光(Area)通過這些光的配合來烘托理想的視覺氛圍達到虛擬現實的效果[5]。
虛擬引擎的腳本在虛擬現實的開發中起到決定性作用,上文提到的模型、材質、貼圖等決定了虛擬現實的視覺效果,而游戲的質量和運行則需要靠虛擬引擎的腳本來實現。虛擬引擎的腳本是通過編寫代碼來執行一系列動作命令的特殊文本,Unity3D 支持Boo、JavaScript、C#三種語言格式的代碼編寫。UI(User Interface)指的是人與系統進行互動時所使用的用戶操作界面,是人與信息交互的媒介。UI 設計決定了一個產品的性格和品位,好的虛擬引擎腳本與好的UI設計相結合,從而制作出一個好的虛擬現實系統。
在科技發展與人民需求的雙重驅使下,虛擬現實技術迎來了一個溫暖春天,無論是技術理論還是基礎硬件都實現了質的飛躍,不斷地為人們的生活提供著便利。文章系統的闡述了最初從模型開始到最終的虛擬引擎腳本和UI 制作,把虛擬現實的視覺呈現和交互的過程完整的展現在大家面前。結合作品說明虛擬現實設計中所需要注意優化的關鍵點,為虛擬現實場景設計師提供點滴經驗。