劉涵劍 羅旭
【摘要】? ? 隨著科技與經濟的發展,全世界各個地區的文化交流趨于緊密,人們對于藝術方面的追求與創作也呈現多元化的趨勢。而虛擬與增強現實技術在穩步發展的同時正滲透于各個領域,為噴漆涂鴉藝術的發展與推廣提供了一條新的途徑。本文主要介紹了借助虛擬現實軟件開發引擎Unity 3D所設計的VR噴漆涂鴉系統的實現方案,通過對系統的框架與功能設計、3D建模、渲染技術和系統交互等多個技術方面進行設計及分析此系統所潛在的問題,闡述了其實現的可行性,為以現代科技為載體的藝術創作形式的推進與提升提供了新的思路與有效途徑。
【關鍵詞】? ? 虛擬現實? ? 噴漆涂鴉? ? 3D建模? ? 圖形渲染
一、系統總體設計
對于系統開發過程,采用快速原型模型。首先確定噴漆涂鴉系統的基本需求是實現涂鴉繪畫的功能,然后在對系統結構框架快速分析的基礎上,根據基本需求編寫一個可大致實現這一功能的原型軟件。此階段暫時忽略最終系統對于某些更加具體的功能模塊上的細節要求,將考慮的重心放在需求分析階段所提出的能夠充分體現所要實現功能的基本特性,并對形成的原型進行相應的測評[1]。在原型系統的測試運行期間,對所展現的效果與預期制定的涂鴉系統功能實現進行對比分析,從而找出前一階段所出現的決策或技術上的錯誤并加以修改與完善[2]。同時在原型系統的基礎上不斷增添新的功能需求,討論并制定新的修改與實現方案,根據明確的功能模塊需求對系統原型進行迅速且完整地修正,反復迭代,一步步實現最終系統。
二、系統模塊組成
2.1場景模型模塊
此模塊主要作為虛擬現實場景中的仿真建筑物與自然景物,作為噴漆涂鴉的載體,從而更好地模擬現實中涂鴉的流程與操作步驟。考慮到此模塊中模型的數量較多,需采用合適的數據結構與搜索算法,將其分區分類進行存儲,簡化后續的功能拓展與管理。
2.2噴漆實現模塊
此模塊主要需實現用戶選擇不同種類的噴漆工具并在虛擬場景中進行涂鴉創作的功能。因仿真的噴漆基本功能大致相同,主要的區別體現在其噴漆樣式的呈現上,所以可設計統一的接口,在降低系統的耦合度同時,方便后續噴漆樣式種類的增添與新功能的拓展[3]。
2.3涂鴉存儲與展示模塊
涂鴉作為一種藝術的載體,應該在系統中提供對其進行存儲的功能,同時當用戶需要進行觀賞時可將作品展示出來。一種方案是將作為涂鴉載體的相關模型連同涂鴉以三維的方式一同保存在虛擬世界的用戶個人倉庫中,為用戶提供全景還原的涂鴉存儲形式,更利于后續的觀賞與學習等操作。
2.4社區交流模塊
搭建系統內置的社區平臺,可供不同地區的涂鴉藝術愛好者進行交流、相互展示查閱涂鴉作品。此模塊可激發用戶在虛擬系統中進行創作的熱情,促進文化交流與藝術思維的碰撞,契合系統開發的初衷。
三、三維模型構建
在虛擬場景中,用三維模型作為噴漆涂鴉的載體,而這些模型中大部分為虛擬建筑物,所以在模型制作軟件上采用與建筑方面有著密切聯系的3D Studio Max(簡稱3D Studio Max)。為減少內存開銷,著重突出可視效果展現,在建模時對于虛擬場景中用戶很少交互或觀察到的模型,進行適當簡化,并盡量用參數化的方法進行構建。
為進一步獲得高效率的渲染運算,此系統采用LOD(Levels of Detail)技術。LOD可根據虛擬場景中物體模型與攝像機的距離而調用不同復雜度的模型,遠距離物體使用低模,近距離物體使用高模[4]。所以在模型制作時,應該根據不同精確度與復雜度的需求制作不同品質的模型。同時,為便于在集成系統中進行統一管理與操作,對模型進行合理化分割并分別建模。
四、系統功能設計與實現
系統開發引擎主要采用Unity3D,其為由Unity Technologies開發的面向多平臺的全面整合開發工具。首先將上一步由3D Studio Max制作好的模型添加到虛擬場景中,搭建一個適用于噴漆涂鴉的較為合理的場景布局。為更真實地模擬現實場景中的天氣、光線等自然環境因素對景觀的影響,在虛擬場景中添加Skybox(天空盒)和不同種類光源。
在場景布局的初步完成后,便進入代碼編寫階段,通過編寫C#腳本代碼來實現用戶與虛擬場景的交互,其中包括菜單選擇、移動和主要功能——涂鴉創作。菜單選擇可初步通過在UI中選擇創建一個“Dropdown”控件并編寫相應代碼實現。UI界面的設計往往直接影響著用戶的體驗。高品質的UI設計不僅可以讓場景交互變得簡單舒適,而且可以將涂鴉系統的個性化風格體現出來[5]。考慮到用戶適應性和場景限制方面所存在的問題,用戶在虛擬場景中可借助傳送的方式進行移動,其步驟包括:用戶通過按壓手柄發射射線從而在場景中選擇一個傳送點,并將此點所在的目標物體進行標記;通過碰撞檢查此物體上是否掛載相關組件,若是則將其記錄為碰撞點;將用戶在虛擬場景的位置傳送到碰撞點上。最后,為實現涂鴉噴漆各種各樣的顏色樣式等效果,需要借助采用ShaderLab編寫的Shader腳本來實現。考慮到當前所設計系統中的模型大多是貼合生活的棱角較為分明的立體建筑或表面不規整的自然山體景物,而Surface Shader(表面著色器)對于實現描邊效果存在只適用于表面平緩模型的弊端[6],所以主要編寫Shader腳本的為Vertex/Fragment Shader (頂點/片斷著色器)。
五、圖像渲染優化
在圖形渲染方面,為了提高系統性能,采用遮擋剔除技術(Occlusion Culling)和LOD技術。遮擋剔除技術的主要功能為:在物體進入渲染管線之前,將攝像機視角內看不到的物體進行剔除,從而達到減少被渲染對象個數、降低每幀渲染時間的效果[7]。需要進行遮擋剔除的區域是由一個個單元格構成,而這些單元格是待剔除場景區域的進一步分割。遮擋剔除與視錐體剔除 (Frustum Culling) 有一定區別。視錐體剔除只將相機視野外的物體渲染剔除掉,不剔除視野內被遮擋的物體的渲染[8]。此系統將遮擋剔除作為視錐體剔除的一個補充,兩者共同應用于圖形渲染以加強對性能方面的優化。
LOD技術是在不對畫面流暢度和所需視覺效果造成影響的情況下,借助按層次簡化模型的精細度來降低場景的幾何復雜性的方法提高CPU及渲染管線的效率。LOD技術的聚類算法可通過檢測模型相鄰頂點并將其聚類合并的方法來簡化網格,因其不考慮原始網格的拓撲幾何結構,可能生成的網格會非常粗糙[9]。由于此系統主要實現的功能是噴漆涂鴉的創作過程,對于在虛擬場景中處于用戶活動范圍之外的景物模型的視覺效果要求不高,鑒于聚類算法實現簡單且效率高的特點,將其作為此系統實現LOD技術的主要算法。
六、結束語
本文基于虛擬現實的噴漆涂鴉藝術創作的設計與實現,介紹了其相關的技術,并借鑒市面上已有的類似系統的設計經驗,給出了VR噴漆涂鴉系統的設計思路與方法。虛擬現實技術是一項將計算機虛擬世界以一種仿真的形式呈現給現實感官的實用技術,它激發了人們天馬行空的想象,將各個領域與此技術結合,催生了諸多造福人類的創造性成果。可以展望,未來虛擬現實技術將與我們生活的各個方面相結合,發揮出其巨大的潛力。
參? 考? 文? 獻
[1]何聚厚,梁瑞娜,韓廣欣,肖鑫,梁玉帥.基于虛擬現實技術的深度學習場域模型構建研究[J].電化教育研究,2019,40(01):59-66.
[2]張越.瀑布模型、快速原型模型和增量模型的對比[J].電子技術與軟件工程,2019(03):32.
[3]焦航濤.3d studio max建筑漫游動畫制作流程[J].硅谷,2011(05):171.
[4]呂慧玲,李佩瑤,湯圣君,朱慶,許麗.BIM模型到多細節層次GIS模型轉換方法[J].地理信息世界,2016,23(04):64-70.
[5]陳昭霓.認知心理學在UI界面設計中的應用[J].包裝工程,2017,38(16):30-33.
[6]王傳鵬. 基于WebGL的建筑大模型實時顯示系統設計與實現[D].華南理工大學,2018.
[7]胡德龍. 虛實遮擋技術及實驗驗證研究[D].武漢理工大學,2019.
[8]郭潔暢. 多種VR設備下的三維模型交互技術研究[D].杭州電子科技大學,2018.
[9]周力虹,韓瀅瑩,屠曉梅.國內外高校圖書館虛擬現實技術應用對比研究[J].圖書與情報,2017(04):1-7.