【摘 要】隨著虛擬現(xiàn)實交互技術(shù)的研究和運用日益深入和廣泛,對虛擬場景的真實感和沉浸感都提出更高的要求。目前交互引擎也種類繁多,而且大都功能強大,畫面效果表現(xiàn)力亦很強,本文提出以unity3D為交互引擎系統(tǒng)的開發(fā)解決方案,介紹采用unity3D游戲引擎構(gòu)建虛擬河下古鎮(zhèn)交互漫游系統(tǒng)的框架,著重闡述虛擬場景交互漫游的方法及實現(xiàn),包括一個以三維等手段的系統(tǒng)完整制作流程以及一個以路徑漫游、天氣變化系統(tǒng)、碰撞檢測等技術(shù)點的引擎具體運用。
【關(guān)鍵詞】虛擬場景 交互漫游 三維游戲引擎
虛擬交互漫游又稱虛擬現(xiàn)實,是近年來迅速發(fā)展起來的一個利用計算機技術(shù)開發(fā)的綜合研究領(lǐng)域。利用其技術(shù)表現(xiàn)的三維虛擬場景空間,可使人身臨其境。名人場景、文物等古跡遺址數(shù)字化再現(xiàn)是當(dāng)前文化遺產(chǎn)保護的研究熱點,隨著虛擬現(xiàn)實技術(shù)和三維游戲引擎開發(fā)日益成熟和發(fā)展,使得對河下古鎮(zhèn)進行全方位的三維模擬展示成為可能。
河下古鎮(zhèn)主體建筑主要包括河下古鎮(zhèn)沿河主要景區(qū)的古街建筑。系統(tǒng)使用maya構(gòu)建三維場景模型和貼圖,交互漫游和三維預(yù)覽使用游戲引擎unity3D實現(xiàn)。具體框架分為三維場景搭建,Unity3D平臺開發(fā)中的物理碰撞、行走漫游、天氣變化系統(tǒng)等部分。
一、三維場景搭建
(一)三維模型搭建與模型優(yōu)化
系統(tǒng)中的三維模型都是采用多邊形(polygons)建模方式進行搭建。在創(chuàng)建場景中不規(guī)則較復(fù)雜物體時,由于物體結(jié)構(gòu)較為復(fù)雜,可采用了曲線放樣的建模方法。根據(jù)不規(guī)則物體的輪廓,利用CV曲線講物體結(jié)構(gòu)繪制出來,然后進行曲線放樣得到完全符合物體參照圖的NURBS模型,最后通過NURBS to Polypons工具講模型轉(zhuǎn)化成多邊形模型。
由于交互引擎對真?zhèn)€場景面數(shù)有局限性,因此減少場景中模型的個數(shù)和總體面片數(shù)量可以有效降低場景對計算機物理性能的需求。采用整體刪減線面和合并點線的方法對模型行進精減,去除一些多余的線和繁復(fù)的細節(jié)。完成模型精減工作之后使用maya中的Cleanup工具檢查模型,修改出現(xiàn)的點線面錯誤并優(yōu)化模型。
(二)貼圖烘焙與繪制
由于對三維場景模型進行了大量的優(yōu)化和精減,嚴格控制了模型的面數(shù),從另一程度上也使得模型本身的細節(jié)有所丟失,為了讓低精度模型仍然顯示高精度模型的細節(jié),對場景中的一些重要物體進行了高精度模型制作,在maya中將分好UV的低模包裹高模選擇Normal(法線)工具進行法線貼圖烘焙。
二、Unity3D平臺開發(fā)
Unity3D是一個創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)游戲引擎。其平臺類似于Director,Blender game engine等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件其編輯器運行在Windows 和Mac OS X下,可發(fā)布游戲至Windows、Mac、Wii、iPhone和Android平臺。
(一)物理碰撞測試
本系統(tǒng)是模擬第一人稱視角游戲開發(fā)的一套場景虛擬交互漫游,畫面以第一人稱為視角,通過敲擊鍵盤上的對應(yīng)鍵位在虛擬場景中自由行走。為避免在行走中與墻壁、門、樹干等物體發(fā)生物體重疊也就是穿插,需要給物體添加物理碰撞成分,以確保在漫游時不肆意穿插。
在本系統(tǒng)的碰撞測試中重點完成的就是第一人稱視角主體與地面的碰撞,因此事先做了一個基本的物體與地面碰撞測試。描述如下:當(dāng)物體碰到地面,輸出被物體碰撞的地面的name“Ground”,則表述檢測到物體碰撞了地面。具體實施步驟:
1.編寫代碼
在“Project”面板中單擊“Create”旁邊的小三角,選擇“javascript”創(chuàng)建一個名為“collision”的js文件。雙擊它,系統(tǒng)啟動Monodevelop來編輯js文件。
清除里面默認創(chuàng)建的代碼。寫上。
function OnCollisionEnter(obj:Collision)
{
Debug.Log(obj.gameObject.name);
}
2.運行程序
程序運行結(jié)果,當(dāng)立方體與地板碰撞時,unity3d底部狀態(tài)欄會輸出地面的name。
由此得知碰撞測試完成,基于這個原理可以給場景中對應(yīng)的物體加載物理碰撞。
(二)行走漫游
實現(xiàn)行走功能可以使系統(tǒng)操作者在通過敲擊鍵盤上相應(yīng)鍵位并結(jié)合鼠標使用在虛擬場景中自由移動行走和飛行鳥瞰全景或者任意觀看虛擬場景物體,實現(xiàn)完全自主虛擬游覽從而達到交互漫游目的。
(三)天氣變化系統(tǒng)
在通過對整個虛擬場景進行燈光系統(tǒng)測試之后,確定光源位置和光照方向,并且規(guī)劃
出天氣變化方案。在古鎮(zhèn)場景交互漫游系統(tǒng)中使用了Unity中的Unisky插件制作天氣變化系統(tǒng),通過調(diào)整平行光模擬早晨和傍晚的光照天氣,使用雨天粒子系統(tǒng)模擬制作出了雨天和下雪天場景。
三、結(jié)束語
虛擬交互漫游技術(shù)對歷史文化遺產(chǎn)保護、重現(xiàn)和文化傳播具有實際應(yīng)用價值。其系統(tǒng)涉及了從電腦美術(shù)到計算機語言技術(shù)的多個技術(shù)領(lǐng)域,在后面的工作中模型優(yōu)化、貼圖繪制、Unity3D引擎開發(fā)等方面仍值得進一步學(xué)習(xí)、探討和研究。
參考文獻:
[1] 曹彤.虛擬博物館的三維場景構(gòu)造及交互漫游實現(xiàn)[J].計算機工程與設(shè)計,2007,28(24):6006-6007
[2] 干建松.基于Unity3d的室內(nèi)漫游仿真系統(tǒng)[J].淮陰師范學(xué)院學(xué)報(自然學(xué)報),2011,10(06):515-518
[3] 朱旦晨,宋桂嶺.基于Unreal3的虛擬博物館系統(tǒng)的實現(xiàn)[J].計算機與現(xiàn)代化,2010,12:48-52
[4] 曹彤,鮑泓.沉浸式雙通道虛擬博物館的設(shè)計與開發(fā)[J].系統(tǒng)仿真學(xué)報,2008,20(13):3593-3595
作者簡介:
楊雪,女,1985年9月4日出生,江蘇淮安人。北京大學(xué)數(shù)字交互媒體專業(yè),碩士學(xué)位。
現(xiàn)任江蘇省淮安信息職業(yè)技術(shù)學(xué)院傳媒藝術(shù)系教師,助教職稱。