?

基于Unity3d的博物館移動信息化系統

2016-10-18 15:14劉億斯梁灝黃章菡黃岳田趙生平
科技視界 2016年22期
關鍵詞:虛擬現實

劉億斯 梁灝 黃章菡 黃岳田 趙生平

【摘 要】社會、技術和智能手機的發展,虛擬場景漫游也作為虛擬現實技術的一個想當重要的領域,有著很大的應用價值和發展空間。旅游景點提供給游客的信息一般是印刷大量的宣傳手冊或者是指導手冊,耗費了大量的人力、物力和財力,這不僅僅照成了資源的浪費,人力的損失,也照成了環境的污染。把虛擬漫游技術與近年來發展得正火熱的Android相結合,以桂林李宗仁官邸為基礎,將這個場景進行數字化并且移植到手機上。系統通過計算機圖形技術,將現實的場景保證一定視覺效果的時候同時進行可視化三維建模設計,達到一定的視覺效果的同時,構建一個手機上虛擬的場景。

【關鍵詞】虛擬現實;虛擬場景漫游;Android;Unity3d

1 課題的研究背景以及意義

人們的生活水平不斷的提高,人們也越來越愿意去花時間去外面看看,然而在世界上,旅游的景點這么多,我們不可能把每一個景點都去看一遍,同時隨著智能手機和網絡的發展,我們所需要的東西似乎隨時都能夠找到,而且交互式虛擬現實技術也在網絡上隨著應用得到發展。所以,結合這個情況,我們就應用Unity3d的虛擬現實技術和三維建模技術將一個博物館的場景數字化后移植手機上,這樣,某些我們去不到的場景就能夠在手機上體驗了。

通過虛擬現實的技術,我們可以把遠處的場景或者是已經設計好但在現實世界中并不存在的東西讓用戶提前體驗,這在設計與規劃、虛擬游覽、購物、交互式娛樂等方面都會有重大的經濟效益。

2 課題的研究內容

在該課題中,主要的內容是以一個場景為藍本,實現一個場景的虛擬化,在保證環境的真實性的情況下,適當提高藝術性,讓觀眾能夠較為直觀的了解場景的結構。開發過程中虛擬現實技術主要使用3dsmax建模軟件和Unity3d開發工具,同時還對android方面上的功能進行修改。其中3dsmax主要用于建筑、設備、設施等場景的繪制,Unity3d用于對場景的整合,同時也負責添加腳本以和用戶進行交互。

為了能夠讓用戶更加全面的了解這個場景,我們還把實地考察的照片和獲取的信息放到我們已經建好的網站上面,這個網站我們主要是使用Php語言支持的yii framework、前端用bootstarp和jquery、數據庫是MySQL、服務器軟件是Apache。同時把圖片文字的數據保存到我們的數據庫中,方便后期能夠對網站內容進行更新。

3 概要設計

3.1 Unity3D

本團隊在項目之初進行了實地考察、取景工作獲取了大量的相關照片。接著使用3dsmax建模工具根據獲取到的照片進行建模工作,同時設置好貼圖并且導出到Unity3d中。

導入到Unity3d中后,根據實際的情況以及手機性能上的限制,植被系統不宜設置過多,否者會由于面片數過多而會出現卡頓的情況。根據多次測試,在測試平臺高通驍龍S800的手機上(手機為LG G2與nexus 5),Tris在1.5m左右、Verts在2.1m左右,流暢度是可以接受的,同時場景的植被也不至于太少顯得過于單一。

3.2 網站功能

根據需求設計網站功能如圖所示。管理員模塊即用戶模塊,管理后臺登陸用戶,可進行添加新管理員和刪除管理員;新聞模塊,管理和顯示博物館新聞;通知模塊,管理和顯示博物館的實時公告;文物模塊,管理網站中博物館展示的文物,以圖文并茂的文章向用戶展示文物;博物館簡介,對博物館的簡介和背景的管理;資源模塊,管理網站文章的資源如圖片等。

4 詳細設計

4.1 Unity3d

4.1.1 NavMesh組件

在Unity3d中,系統已經內置了一個名為NavMesh的組件,在Navigation面板里面我們可以將系統里面的建筑設置為障礙物,點擊Bake后可以在Sense視圖中看到相關更改。同時給人物掛上NavMeshAgent以及添加上簡單的腳本即可實現自動尋路功能了。(相關API:NavMeshAgent.SetDestination())。

4.1.2 A*算法

而A*算法則是綜合了這兩個算法的優點,A*算法的核心思想則是在獲取到一個新的可行節點時,會將新的這個可行節點與起點判斷,同時與終點進行判斷,評估這兩者代價。當然,下一個節點的來源依然是環繞在當前節點的周圍。不同的是在每次主循環時A*算法會評估每個節點的的價值。因此,如何判斷每個節點的價值是很重要的,至于如何判斷,我們有許多種方法,比如,曼哈頓距離、對角線距離,歐幾里得距離。

在Unity3d中,我們可以使用AStarPathFinding插件來實現這個功能,該插件已經為我們封裝好了我們所需要的絕大部分的功能。首先,需要給障礙物設置好碰撞體,同時將相關障礙單獨分類到新的一層中,我這里設置的層為Obstacles。接著在A*的Gameobject中的設置好相關的參數。最后只要在開始移動的時候使用該插件提供的方法即可移動了(圖1)。

4.2 網頁

4.2.1 網站基本框架模式

后臺的開發使用Yii framework1.0(以下簡稱Yii)版本。Yii是一個基于組件的高性能PHP框架,用于開發大型Web應用。Yii采用嚴格的OOP編寫,采用MVC的架構模式,開發中過程中遵守Yii的MVC原則,所以網站的整體設計模式是MVC模式。Yii實現了ActiveRecord數據庫訪問模式,ActiveRecord遵循標準的ORM模型(對象關系映射模型),表映射到記錄,記錄映射到對象,字段映射到對象屬性。項目中的數據庫訪問基本經過ActiveRecord。

4.2.2 網站內容管理(數據庫訪問)

網站的內容分為新聞、公告、本館簡介、歷史背景和館藏文物五類,存儲在同一個表中,下面把這五類內容統稱為文章。進行文章的增刪改查時,都通過Article類。Article類繼承于Yii的CActiveRecord類,通過Yii提供的接口可以簡單的就能實現對數據庫的訪問。比如,Article::model()->deleteByPk(1)即實現了刪除id為1的文章。文章的區別主要在type字段上。

4.2.3 資源管理

CKEditor可以直接插入多媒體等資源到文章中,但是插入資源后,資源就不好管理了。為實現資源的管理,網站中設計了一個資源管理模塊用于管理網站中的資源,同時編寫了一個CKEditor的插件用于把資源模塊的資源插入文章中。

5 該課題的創新點

(1)與原有的博物館的場景相結合,參考原來博物館的模型建立,最大化的在移動平臺上實現模擬博物館的模樣。

(2)通過Unity3d的mono多平臺發布技術,日后能夠快速地發布到多個平臺上,并且保持不同平臺體驗的一致性。

(3)在Android平臺上,將Unity3d和android技術相結合,實現了分工功能,也即在Unity3d實現模型展示和虛擬漫游功能,在android端實現主要的UI設計和模型介紹。

(4)對原有的博物館進行的建模工作,并且使用Unity3D建立了一個場景,用戶可以在手機上進行博物館虛擬漫游。這樣,用戶就不需要到達博物館就能大概了解到博物館的內部結構。并且我們也能夠結合暴風影音公司開發的暴風魔鏡,能夠提供更加真實的漫游體驗。

【參考文獻】

[1]湖光軍.三維虛擬校園自動漫游系統的設計與實踐[D].山東:山東大學軟件學院,2013.

[2]王運.基于手機Android平臺的虛擬校園漫游系統的設計與實現[D].北京:北京工業大學軟件學院,2013.

[3]王洪.基于虛擬現實的三維漫游技術研究與實踐[D].四川:電子科技大學計算機學院,2013.

猜你喜歡
虛擬現實
論虛擬現實藝術的“沉浸”
REALITY BITES
虛擬現實技術向科幻小說借靈感
虛擬現實:另一個真實世界
淺談虛擬現實
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合