基于Unity3D的虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于Unity3D的虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于Unity3D的虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于Unity3D的虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于Unity3D的虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于Unity3D的虛擬校園遨游的設(shè)計(jì)與實(shí)現(xiàn)【摘 要】虛擬校園建立是虛擬現(xiàn)實(shí)的重要應(yīng)用領(lǐng)域,目前相關(guān)的研究多是構(gòu)建單機(jī)系統(tǒng)下的應(yīng)用。為了進(jìn)步網(wǎng)絡(luò)傳輸效率和交互才能,在校園場景建模中需要在模型逼真度和模型大小之間進(jìn)展平衡。本文以西安石油大學(xué)校園場景為建模對象,介紹了校園場景總體設(shè)計(jì)思想,重點(diǎn)介紹了實(shí)現(xiàn)虛擬場景的合并、人物的虛擬遨游設(shè)計(jì)及基于C/S模型的動態(tài)人物的交互。針對虛擬遨游網(wǎng)絡(luò)占用大量網(wǎng)絡(luò)帶寬,影像虛擬遨游系統(tǒng)運(yùn)行的流暢性,提出了在建模優(yōu)化及程序中的優(yōu)化施行措施,經(jīng)過軟件測試,說明該優(yōu)化方法可以有效地降低網(wǎng)絡(luò)帶寬,可以一定程度上進(jìn)步虛擬遨游系統(tǒng)運(yùn)行效率,驗(yàn)證了在網(wǎng)絡(luò)環(huán)境下的操作流暢性,為構(gòu)

2、建虛擬數(shù)字化校園及相關(guān)方向研究提供實(shí)用參考價(jià)值?!娟P(guān)鍵詞】虛擬現(xiàn)實(shí);虛擬校園;校園遨游;Unity3DDesign and Realization of Virtual Campus Roaming Based on Unity3DWANG Cai-ling LIU Rui-xiang SONG ZhaoSchool of Computer Science, Xian Shiyou University, Xian Shaanxi 710065, China【Abstract】Virtual campus use is one of important application field of

3、 virtual reality. Nowadays, most virtual systems are almost stand-alone system. In order to improve the efficiency of systems network transmission and interaction ability, the model fidelity and model size should keep a right balance. This paper takes the campus scenario f Xian shiyou university as

4、modeling object, introduces the overall design thought, and how to realize the consolidation of virtual scene, the design of virtual roaming of characters and the interaction of dynamic characters based on C/S model are mainly introduced. Many factors such as network bandwidth in system implementati

5、on and implementation measures in modeling optimization and program optimization are discussed. This paper verifies the systems operation fluency under network environment, and provides practical reference value for building a virtual digital campus and the relevant research.【Key words】Virtual reali

6、ty; Virtual campus; Campus roaming; Unity3D0 引言虛擬校園社區(qū)可以提供三維虛擬環(huán)境,用于支持對現(xiàn)實(shí)大學(xué)的資源管理、環(huán)境規(guī)劃、學(xué)校開展和遠(yuǎn)程訪問等。是校園景觀和教學(xué)環(huán)境在計(jì)算機(jī)中的虛擬再現(xiàn)。它利用地理信息技術(shù)、虛擬現(xiàn)實(shí)技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)等高新技術(shù),實(shí)現(xiàn)對真實(shí)校園環(huán)境中的三維景觀和教學(xué)環(huán)境的數(shù)字化和虛擬化。到那時(shí),世界各地的人們不必親臨現(xiàn)場,只需在網(wǎng)上就能暢游其間,方便人們隨時(shí)隨地理解校園的情況。虛擬校園為師生們提供了非常便利和快捷的交流,同時(shí)完善的虛擬校園系統(tǒng)集學(xué)習(xí)、工作、娛樂、生活為一體,增加了師生之間交流的興趣性,有利于師生之間的良好溝通。虛擬校

7、園社區(qū)以網(wǎng)絡(luò)為根底,利用先進(jìn)的信息化手段和先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、虛擬現(xiàn)實(shí)技術(shù),實(shí)現(xiàn)學(xué)校與教學(xué)、科研、管理和生活效勞有關(guān)的所有信息資源進(jìn)展全面的數(shù)字化。把學(xué)校建立成面向校內(nèi)外,也面向社會的一個(gè)超越時(shí)間、超越空間的虛擬校園社區(qū),進(jìn)步傳統(tǒng)校園的效率,擴(kuò)展傳統(tǒng)校園的功能。最終實(shí)現(xiàn)教育過程的全面信息化,從而到達(dá)進(jìn)步教育管理程度的目的。虛擬校園技術(shù)必將成為今后校園信息化開展方向的主流,而基于網(wǎng)絡(luò)的大規(guī)模虛擬校園遨游將成為研究的新熱點(diǎn).本系統(tǒng)以unity3d作為開發(fā)平臺,結(jié)合AUTOCAD規(guī)劃總平面圖8;利用AutoCAD、3DMAX、Photoshop、Unity3D等軟件實(shí)現(xiàn)了某高校虛擬校園設(shè)計(jì),

8、該虛擬校園場景具有良好的沉浸感,通過網(wǎng)上發(fā)布,測試了其流暢性,可以作為該學(xué)校的數(shù)字講解平臺使用。1 三維虛擬校園遨游的總體設(shè)計(jì)1.1 虛擬校園遨游開發(fā)總體框架虛擬校園的設(shè)計(jì)總體框架如圖1所示。 如圖1所示,首先,基于通過測量、觀察、相機(jī)記錄等方式獲取校園地理信息數(shù)據(jù)。包括校園建筑平面圖AutoCAD和校園建筑鳥瞰圖9-10,以及花草、樹木、道路的詳細(xì)數(shù)據(jù)及信息。然后,使用3d建模軟件例如maya 3dmax 等專業(yè)建模軟件,制作三維數(shù)字模型。本系統(tǒng)使用的是最為流行的3dmax 對校園建筑模型進(jìn)展加工和渲染。從而得到更加真實(shí)的三維立體模型。第三步,在Unity3D中添加地面。將上述步驟建好的三維

9、建筑模型根據(jù)地理坐標(biāo)依次添加到Unity3D中,進(jìn)展場景交融。以及紋理添加、燈光渲染等工作11-13。第四步,通過unity3D的跨平臺性,生成可以通過網(wǎng)頁閱讀的Web格式的虛擬社區(qū)14。圖1 虛擬校園總體設(shè)計(jì)流程Unity3d中的地形建立:在Unity3D軟件中通過Terrain菜單建立及修改地形。Terrain地形編輯工具可以根據(jù)詳細(xì)的實(shí)地場景進(jìn)展隨意設(shè)置及修改。采用標(biāo)準(zhǔn)統(tǒng)一的地形,可以完成山地、城市和鄉(xiāng)村場景的設(shè)計(jì),具有友好的界面。同時(shí),可以在整個(gè)地形上鋪設(shè)地形紋理來裝飾地圖風(fēng)景,還可以混合或合并地形紋理來平滑地過渡一個(gè)地圖到另一個(gè)地圖,或使地圖的環(huán)境多樣化。這極大方便了虛擬場景的制作。

10、圖2 Unity3D的Terrain菜單項(xiàng)1.3 Unity3D 中三維模型的導(dǎo)入U(xiǎn)nity3D軟件只支持fbx格式的三維模型,因此,在設(shè)計(jì)時(shí),采用3DMax建模,將模型存儲為fbx類型。在Unity3D中的asset文件夾中添加Object文件夾,此時(shí),Unity3D將自動識別該模型,并將其Material 和 Textures 別離出來導(dǎo)入到Object的文件夾下面。此時(shí),當(dāng)模型導(dǎo)入時(shí),我們可以在菜單欄 Assetsimport new asset, 選擇我們要導(dǎo)入的*.fbx15。1.4 建筑模型紋理設(shè)計(jì)在 Unity3d 環(huán)境中設(shè)計(jì)紋理及貼圖之前應(yīng)先確定各模型的材質(zhì)、貼圖和物理屬性。在

11、獲取相關(guān)屬性后,將模型導(dǎo)入U(xiǎn)nity3d中進(jìn)展Shader 腳本設(shè)置和紋理貼圖。Unity3D中的shader腳本,采用shaderlab腳本語言編寫,shader的框架如下:shader quot;shader namequot; properties _Colorquot;Diffuse Colorquot;, Color = 1,.5,.5,1_Texturequot;Main Texturequot;, 2D = quot;quot;SubShaderTagsquot;Queuequot;=quot;Transparentquot;passTagsMaterialFallback qu

12、ot;quot;其中,properties 中定義的變量,是可以采用編輯器編輯的。在Unity3D編輯器中選中一個(gè)材質(zhì),材質(zhì)中的shader里面定義在properties 中的變量就會出現(xiàn)該材質(zhì)的屬性面板中,可以手動設(shè)置對應(yīng)的屬性。其中,紋理屬性后面,還有一些可選的屬性可以設(shè)置,用于設(shè)置紋理的坐標(biāo),和其他一些屬性。1.5 虛擬場景的合并在進(jìn)展模型設(shè)計(jì)后,需要將多個(gè)模型及場景根據(jù)平面圖進(jìn)展場景整合,還需要背景配樂等多媒體文件支持。在設(shè)計(jì)時(shí),通過建立 Directional Light和sky box,可以使場景更加亮堂和逼真。2 虛擬系統(tǒng)的實(shí)現(xiàn)2.1 遨游技術(shù)的實(shí)現(xiàn)在虛擬遨游中,我們希望通過控制

13、鼠標(biāo)或者鍵盤實(shí)現(xiàn)視角和場景的轉(zhuǎn)換。在詳細(xì)實(shí)現(xiàn)中,首先,在3DMax 建模軟件中分別制作人物的行走動畫、站立動畫、跳躍動畫和跑步動畫,制作完畢后,將動畫模型保存為 .fbx 文件格式。將動作模型導(dǎo)入到Unity3D 工程的Object文件夾中。然后,在欄中選中導(dǎo)入動畫模型,在屬性面板中設(shè)置模型不同動作的開始和完畢幀,所拖拽動畫模型到舞臺中去。通過Character Moto命令給動畫模型添加人物控制器,在屬性面板中調(diào)節(jié)Radius和Height來調(diào)節(jié)人物控制器的輪廓、高度。在軟件中添加Javescript控制代碼實(shí)現(xiàn)運(yùn)動控制。詳細(xì)的,設(shè)計(jì)鼠標(biāo)控制需要對人物添加Mouse Look旋轉(zhuǎn)控制器,設(shè)計(jì)

14、鍵盤控制需要對人物添加FPS Input Controller挪動控制器。對相應(yīng)控制器設(shè)計(jì)即可實(shí)現(xiàn)視角隨著鼠標(biāo)方向的旋轉(zhuǎn)和鍵盤控制人物實(shí)現(xiàn)前后左右的挪動16-17。在詳細(xì)設(shè)計(jì)時(shí),需要考慮當(dāng)角色挪動時(shí),需要配合相應(yīng)的動作來完成角色挪動的效果,比方:跑動作、跳動作等,為了給用戶帶來視覺的更加逼真的效果,在設(shè)計(jì)時(shí),在animatioController.js添加動作代碼, 其中核心代碼如下:ifInput.GetAxisquot;Verticalquot; .1/假設(shè)是豎直方向的向前運(yùn)動ifInput.GetButtonquot;Runquot;/按下run按鈕animation.CrossFade

15、quot;runquot;/播放run動畫walkSpeed = 4;/同時(shí)設(shè)置速度為4elseanimationquot;walkquot;.speed = 1;/其他時(shí)候那么為走路 animation.CrossFadequot;walkquot;/播放走路動畫walkSpeed = 1;/同時(shí)設(shè)置速度為1ifInput.GetAxisquot;Verticalquot; -.1/ /假設(shè)是豎直方向的向后運(yùn)動animationquot;walkquot;.speed = -1;/速度設(shè)置為負(fù)值animation.CrossFadequot;walkquot;/播放走畫面walkSpeed

16、= 1;elseanimation.CrossFadequot;idlequot;/其他時(shí)候?yàn)檎玖赢媔f Input. GetIeyDown quot; spacequot; /當(dāng)空格鍵被按下就執(zhí)行跳躍動畫。animation. CrossFadejumpquot;程度方向的控制和垂直方向運(yùn)動一樣代碼在此省略。2.2 碰撞檢測18碰撞檢測19是模擬現(xiàn)實(shí)環(huán)境中的人物及物體在遇到障礙物時(shí)發(fā)生的本能反響,例如,當(dāng)角色遇到墻壁,假設(shè)沒有設(shè)計(jì)碰撞檢測,那么角色會出現(xiàn)穿墻而過的失真現(xiàn)象,在現(xiàn)實(shí)中,應(yīng)該是當(dāng)發(fā)現(xiàn)墻壁與角色存在一定間隔 時(shí),那么需要停頓前進(jìn)。在這種情況下,設(shè)計(jì)人員需要添加碰撞檢測函數(shù)。在Un

17、ity3d軟件中提供了Mesh Collider 撞檢測組件,該組件可以有效計(jì)算模型外表的網(wǎng)格自動生成碰撞面,但是假設(shè)模型外表的網(wǎng)格較多會影響執(zhí)行效率,通過給網(wǎng)格較多的模型添加一個(gè)根本體作為該模型的父模型,設(shè)置成不可渲染那么可以有效解決該問題。2.3 系統(tǒng)聯(lián)機(jī)功能實(shí)現(xiàn)當(dāng)用戶遨游在數(shù)字校園中,假設(shè)只包含靜態(tài)的建筑,而缺乏了動態(tài)的人物交互,這樣的設(shè)計(jì)缺乏真實(shí)的體驗(yàn),在本系統(tǒng)中,采用C/S客戶端效勞器模型,實(shí)現(xiàn)場景中的人物互動。其中,效勞器相對獨(dú)立,可支持多個(gè)客戶端的訪問。兩者之間交互的原理為:客戶端向效勞器發(fā)送懇求,效勞器給予反響。當(dāng)訪問者按下挪動按鍵時(shí),客戶端將事件發(fā)送至效勞器,效勞器端判斷角色

18、該如何挪動才能將事件返回給客戶端,當(dāng)客戶端承受到效勞器返回的數(shù)據(jù)后,開始挪動角色,同時(shí)效勞器端還會將其他訪問者的挪動事件發(fā)送給客戶端。這樣客戶端就可以顯示其他訪問者的模型位置了。詳細(xì)設(shè)計(jì)時(shí),效勞器默認(rèn)開啟,效勞器端核心代碼:Void OnGUISwitchNetwork.PeerTypeCase NetworkPeerType.Disconnected:StartServer ;Case NetworkPeerType.Server:Break;Case NetworkPeerType.Client:Break;Case NetworkPeerType.ConnectingBreak;Void

19、 StartServerifGUILayout.Buttonquot;創(chuàng)立效勞器/效勞端創(chuàng)立效勞器NetworkConnectionError error=Network.ConnectIP, Port,false;/假設(shè)連接失敗,將錯(cuò)誤信息打印出來Debug.Logquot;連接狀態(tài):quot;+error;客戶端核心代碼為:Void OnGUISwitchNetwork.PeerTypeCase NetworkPeerType.Disconnected:StartConnect ;Case NetworkPeerType.Server:Break;Case NetworkPeerType.

20、Client:Break;Case NetworkPeerType.ConnectingBreak;Void StartConnectifGUILayout.Buttonquot;連接效勞器/客戶端連接效勞器NetworkConnectionError error=Network.ConnectIP, Port;/假設(shè)連接失敗,將錯(cuò)誤信息打印出來Debug.Logquot;連接狀態(tài):quot;+error;效勞器創(chuàng)立完成后,客戶端需要向效勞效勞器發(fā)送消息懇求,并且確保效勞器可以將來自某一客戶端的懇求消息返回給連接到效勞器的所有客戶端。需要首先創(chuàng)立一個(gè)網(wǎng)絡(luò)視圖組件,然后就可以使用RPC向效勞器發(fā)

21、送消息了。使用RPC發(fā)送消息的方法如下:networkView.RPCquot;RequestMessagequot;,RPCMode.All ,inputMessage;在效勞器端或客戶端中接收消息懇求的方法如下:void RequestMessagestring message,NetworkMessageInfo info /message:消息內(nèi)容/info:消息附帶信息模擬效果如下:圖33 軟件測試與優(yōu)化任何系統(tǒng)都需要進(jìn)展黑盒子測試以發(fā)現(xiàn)系統(tǒng)存在的問題和破綻。本系統(tǒng)也進(jìn)展了相應(yīng)的測試。在測試中發(fā)現(xiàn),基于網(wǎng)絡(luò)環(huán)境下,系統(tǒng)存在占用網(wǎng)絡(luò)流量大,運(yùn)行緩慢的現(xiàn)象。分析原因是因?yàn)闇y試電腦配置較低及網(wǎng)絡(luò)帶寬限制。這就要求我們從用戶角度出發(fā),在保證真實(shí)度的情況下盡量減少模型的數(shù)量,大部分建筑需要通過平面建模來優(yōu)化模型的復(fù)雜度,在建模過程中盡量減少模型頂點(diǎn)和分段數(shù),在unity3d處理過程中,盡量使用靜態(tài)燈光,動態(tài)實(shí)時(shí)燈光相比靜態(tài)燈光,非常消耗資源。所以除了能動的角色和物體靜態(tài)的地形和建筑。盡量減少視角范圍和間隔 ,減少不必要的運(yùn)行消耗。4 總結(jié)本系統(tǒng)通過Unit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論