• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于3DSMAX和Unity3D的三維虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)

      2018-09-03 07:57蒙秋瓊
      廣西教育·C版 2018年6期
      關(guān)鍵詞:第一人稱漫游攝像機(jī)

      【摘 要】本文以廣西理工職業(yè)技術(shù)學(xué)院為例,論述三維虛擬校園建設(shè)和漫游的設(shè)計(jì)與實(shí)現(xiàn),提出通過谷歌地球獲取校園整體地形地貌,采用Photoshop對實(shí)拍圖片進(jìn)行處理,利用3DsMAX作為建模工具創(chuàng)建教學(xué)樓、辦公樓、宿舍、綜合樓等,運(yùn)用Unity3D制作校園地形并實(shí)現(xiàn)第一人稱校園漫游的交互制作,其逼真的校園環(huán)境模擬和良好的交互性給用戶身臨其境的漫游體驗(yàn)感。

      【關(guān)鍵詞】虛擬校園 第一人稱虛擬漫游 3DSMAX Unity3D

      【中圖分類號】G 【文獻(xiàn)標(biāo)識碼】A

      【文章編號】0450-9889(2018)06C-0187-04

      近年來,虛擬現(xiàn)實(shí)技術(shù)發(fā)展迅猛,它作為一個(gè)體驗(yàn)平臺和設(shè)計(jì)工具的共同體,通過計(jì)算機(jī)融合多源信息、交互式的三維動態(tài)視景和實(shí)體,創(chuàng)造出一個(gè)讓用戶“身處其中”的模擬環(huán)境,使用戶足不出戶就能獲得“身臨其境”的體驗(yàn)感。三維虛擬校園漫游是通過對校園環(huán)境、建筑物、基礎(chǔ)設(shè)施等的仿真,以漫游的形式再現(xiàn)一個(gè)三維可視化的、有聲有色的虛擬校園,它基于虛擬現(xiàn)實(shí)技術(shù),以真實(shí)校園為藍(lán)本,通過三維實(shí)景模擬的方式構(gòu)建一個(gè)逼真的三維虛擬立體校園空間,實(shí)現(xiàn)了第一人稱的自主漫游,體現(xiàn)了環(huán)境的藝術(shù)性與真實(shí)性,使得學(xué)生和家長能夠提前了解校園教學(xué)和生活環(huán)境,提高學(xué)校的形象和聲譽(yù),拓展了學(xué)校對外宣傳、招生、校容校貌展示水平,提升了學(xué)校文化建設(shè)的對外影響力和知名度,使得學(xué)校在日益激烈的高職生源競爭中脫穎而出。本文以廣西理工職業(yè)技術(shù)學(xué)院的三維虛擬校園漫游為例,通過3DsMAX進(jìn)行建模和貼圖,使用Unity3D平臺制作校園地形,結(jié)合C#語言實(shí)現(xiàn)對三維虛擬校園第一人稱漫游的交互控制。

      一、三維虛擬校園漫游開發(fā)流程與設(shè)計(jì)

      (一)三維虛擬校園漫游開發(fā)流程。三維虛擬校園漫游的實(shí)現(xiàn)主要分為三大部分:數(shù)據(jù)采集、模型構(gòu)建、第一人稱漫游制作。

      1.數(shù)據(jù)采集。從谷歌地球獲取校園平面布局圖,為校園地形環(huán)境的制作、道路設(shè)置、建筑物布局提供依據(jù);從學(xué)院后勤獲取各樓棟CAD設(shè)計(jì)圖,為校園建筑建模提供數(shù)據(jù);拍攝校園中各建筑物細(xì)節(jié)圖,拍攝草坪、花圃、林地、天鵝湖、道路等校園環(huán)境景觀,現(xiàn)場測量門窗等獲取實(shí)景數(shù)據(jù)信息,為后期制作高仿真虛擬校園提供參考。

      2.模型構(gòu)建。包括模型創(chuàng)建、優(yōu)化及紋理貼圖處理三個(gè)方面。導(dǎo)入處理好的CAD圖,使用3DMAX軟件創(chuàng)建校園各建筑物模型;刪除建筑物模型中的不可見面,對同一個(gè)面中多余的線和點(diǎn)進(jìn)行移除,優(yōu)化模型;使用Photoshop軟件裁剪圖片、處理貼圖和繪制建筑物紋理等;依據(jù)校園平面圖,使用Unity3D軟件制作校園地形、道路等。

      3.第一人稱漫游制作。使用Unity3D軟件進(jìn)行登錄界面設(shè)計(jì)、場景組建、碰撞設(shè)計(jì)、第一人稱設(shè)計(jì)、漫游設(shè)計(jì)、交互設(shè)計(jì)等。

      具體流程如圖1所示。

      (二)三維虛擬校園漫游設(shè)計(jì)。三維虛擬校園漫游的設(shè)計(jì)目標(biāo)是使用戶在交互的過程中進(jìn)行視覺、聽覺、觸覺的觸碰,足不出戶就能感受到濃烈的校園氣氛,獲得身臨其境的體驗(yàn)。因此,我們將從以下幾個(gè)方面對三維虛擬校園漫游進(jìn)行設(shè)計(jì)。

      1.資源優(yōu)化。為了避免場景過大而增加網(wǎng)絡(luò)環(huán)境和設(shè)備的負(fù)擔(dān),本文所有建筑模型在主場景漫游時(shí)均以只顯示建筑物外觀的形式展現(xiàn),并通過跳轉(zhuǎn)方式進(jìn)入建筑物內(nèi)部漫游,解決了主場景載入時(shí)負(fù)擔(dān)過大的問題,使得可以通過網(wǎng)絡(luò)訪問和瀏覽。

      2.三維虛擬校園的展示。校園地形、建筑物等均以外觀95%相似度的精細(xì)模型展示,與真實(shí)校園環(huán)境基本吻合。

      3.三維虛擬校園漫游。用戶可以通過鼠標(biāo)、鍵盤在虛擬校園內(nèi)自由游覽,并通過小地圖了解用戶在虛擬校園中的位置。

      4.多媒體展示。用戶在進(jìn)入建筑物內(nèi)部巡游時(shí),可通過點(diǎn)播視頻、音頻的方式了解該建筑物主要功能及相關(guān)宣傳資料,增強(qiáng)體驗(yàn)感。

      二、三維虛擬校園漫游的實(shí)現(xiàn)

      (一)三維虛擬校園模型的構(gòu)建。三維虛擬校園模型主要包括大門、教學(xué)樓、宿舍樓、運(yùn)動場、路燈、花草樹木、人工湖、道路、地形模型等,可歸為建筑模型、環(huán)境模型、地表模型三大類。

      建筑模型的構(gòu)建,首先根據(jù)學(xué)院后勤處提供CAD圖在3DMAX中繪制建筑物二維圖形輪廓,再將其擠出、轉(zhuǎn)換為可編輯多邊形,然后對該可編輯多邊形進(jìn)行擠出、倒角、橋、調(diào)整頂點(diǎn)等操作得到三維建筑物模型,最后對建筑物模型進(jìn)行優(yōu)化處理,通過減面、移除多余的邊和頂點(diǎn)、壓縮材質(zhì)貼圖和對建筑物表面的細(xì)節(jié)如外墻瓷磚、門窗、裝飾物等以紋理貼圖代替等方法達(dá)到優(yōu)化和減少模型所占內(nèi)存空間的目的。

      三維虛擬校園的環(huán)境模型中包含大量的花草樹木,為了減少場景所占內(nèi)存空間,樹木均采用十字交叉面制作,花圃花卉采用立面體添加透明貼圖制作,草坪等植被則使用紋理映射的方法。

      構(gòu)建地表模型,需要將從谷歌地球上獲取的校園地形圖在CAD上進(jìn)行處理,使用Unity3D的地形(Terrain)繪制高地、人工湖、山坡、平地、道路等,創(chuàng)建出廣西理工職業(yè)技術(shù)學(xué)院校園依山而建的地貌形態(tài)。

      (二)場景構(gòu)建。場景的構(gòu)建包括登錄界面制作、模型載入、燈光設(shè)置、小地圖制作等。登錄界面以廣西理工職業(yè)技術(shù)學(xué)院正門照片作為背景,使用Unity3D軟件中UI的Text和Button制作標(biāo)題和按鈕,如圖2所示。

      主場景則是將所有在3DsMAX創(chuàng)建的模型導(dǎo)入到Unity3D系統(tǒng)中并擺放到相應(yīng)的位置,調(diào)整大小和方向,在每個(gè)有宣傳展示功能的建筑物邊上設(shè)置進(jìn)入建筑物的引導(dǎo)按鈕,使得能夠跳轉(zhuǎn)進(jìn)入建筑物內(nèi)部漫游和瀏覽。

      為了使得場景看起來更逼真,需要為場景進(jìn)行布光設(shè)置,使用Directional Light方向光充當(dāng)太陽光,在需要的地方適當(dāng)添加Point Light點(diǎn)光源以增強(qiáng)效果。設(shè)置主角外的所有模型為Static靜態(tài)模式,使用Lightmapping技術(shù)將光線效果預(yù)渲染成為貼圖模擬物體上的光影效果,減少光影對性能的開銷。添加天空盒子skybox,使得虛擬校園更美觀。

      小地圖的制作需要添加新的攝像機(jī)作為小地圖專用攝像機(jī),從上往下垂直拍攝校園道路層。創(chuàng)建一個(gè)球體,去掉其Sphere Collider屬性,放置在第一人稱膠囊體的層級之下作為第一人稱的替代體,跟隨主攝像機(jī)移動并在小地圖中顯示出來。保持小地圖視圖是正方形的攝像機(jī)主要代碼為:

      float px=(float)Screen.width/(float)Screen.height;//獲取分辨率比例

      this.camera.rect=new Rect((1-0.2f),(1-0.2f*px),0.2f,0.2f*px);//保持?jǐn)z像機(jī)視圖為正方形

      (三)第一人稱漫游設(shè)計(jì)與實(shí)現(xiàn)。本部分主要分為第一人稱移動控制、場景切換設(shè)置、媒體播放設(shè)置三個(gè)部分。

      1.第一人稱移動控制。首先,選中場景中的所有物體,為它們添加Mesh Collider多邊形碰撞組件設(shè)置為不可穿越的對象,取消Is Trigger屬性使其僅作為觸發(fā)器使用。使用Cretate Empty創(chuàng)建空游戲體作為第一人稱的替代體,為其添加Character Controller角色控制器組件使其變?yōu)槟z囊體以模擬人體的大致形狀。為膠囊體添加Rigidbody剛體組件,使其在移動的過程中與環(huán)境產(chǎn)生碰撞交互,避免發(fā)生穿墻撞樹的行為。使用鍵盤、鼠標(biāo)控制攝像機(jī)跟隨第一人稱移動的代碼分別如下。

      (1)使用鍵盤WSAD鍵控制第一人稱替代體移動的C#腳本代碼。

      void Control() {

      //獲取鼠標(biāo)移動距離

      float m_h=Input.GetAxis(“Mouse X”);

      float m_v=Input.GetAxis(“Mouse Y”);

      //旋轉(zhuǎn)攝像機(jī)

      m_camRot.x-=m_v;

      m_camRot.y+=m_h;

      m_camTransform.eulerAngles=m_camRot;

      //使主角的面向方向與攝像機(jī)一致

      Vector3 camrot=m_camTransform.eulerAngles;

      camrot.x=0; camrot.z=0;

      m_transform.eulerAngles=camrot;

      if (Input.GetKey(KeyCode.W))

      { m_Transform.Translate(Vector3.forward * 0.1f, Space.Self); }

      if (Input.GetKey(KeyCode.S))

      { m_Transform.Translate(Vector3.back * 0.1f, Space.Self); }

      if (Input.GetKey(KeyCode.A))

      { m_Transform.Translate(Vector3.left * 0.1f, Space.Self); }

      if (Input.GetKey(KeyCode.D))

      { m_Transform.Translate(Vector3.right * 0.1f, Space.Self); }

      }

      (2)使用鼠標(biāo)控制第一人稱替代體移動的C#代碼。

      protected Transform m_transform;

      protected Vector3 targetPos;//目標(biāo)位置

      void Start() {

      m_transform = this.transform;

      targetPos = this.m_transform.position; }

      void MoveTo() {

      if (Input.GetMouseButton(0))

      { Vector3 mousePos = Input.mousePosition; //獲得鼠標(biāo)屏幕位置

      Ray ray = Camera.main.ScreenPointToRay(mousePos); //將屏幕位置轉(zhuǎn)為射線

      RaycastHit hitInfo; //用來記錄射線碰撞記錄

      bool isCast = Physics.Raycast(ray, out hitInfo, 1000, inputMask); //產(chǎn)生射線

      if (isCast) {

      targetPos = hitInfo.point; //如果射中目標(biāo),記錄射線碰撞點(diǎn)

      }

      }

      //使用Vector3提供的MoveTowards函數(shù),獲得朝目標(biāo)移動的位置

      Vector3 pos = Vector3.MoveTowards(this.m_transform.position, targetPos, speed * Time.deltaTime);

      this.m_transform.position = pos; //更新當(dāng)前位置

      }

      2.場景切換設(shè)置。為了減少虛擬校園主場景載入負(fù)擔(dān),本次設(shè)計(jì)將進(jìn)入建筑物內(nèi)部的漫游采用場景跳轉(zhuǎn)切換的方式進(jìn)行,在相應(yīng)的建筑物邊上加入U(xiǎn)I控件Button設(shè)置進(jìn)入內(nèi)部漫游指示牌,使用代碼Application.LoadLevel(“scence_n”);跳轉(zhuǎn)切換場景。

      3.媒體播放設(shè)置。在游覽時(shí)播放相應(yīng)的音樂,可以增加漫游的趣味性。在主場景中為地面或主攝像機(jī)添加audio source組件,在其屬性面板的AudioClip項(xiàng)中添加背景音樂文件,保持play on Awake和Loop選項(xiàng)的選擇以保證在運(yùn)行場景時(shí)循環(huán)播放音樂即可實(shí)現(xiàn)背景音樂的添加。

      當(dāng)進(jìn)入建筑物內(nèi)部瀏覽時(shí),可以選擇播放相關(guān)的講解音頻或宣傳視頻,增強(qiáng)宣傳效果。添加講解音頻主要代碼如下:

      public AudioClip audioClip; //定義聲音文件

      private AudioSource m_audioSource; //定義聲音源

      void Awake() {

      m_audioSource = this.gameObject.AddComponent(); //為腳本對象添加聲音源組件

      m_audioSource.loop = true; //設(shè)置聲音的循環(huán)播放

      m_audioSource.volume = 1.0f; //設(shè)置最大音量值

      m_audioSource.clip = audioClip;

      }

      void OnGUI() {

      if(GUI.Button(new Rect(10, 10, 80, 30),"播放")) {

      m_audioSource.Play(); }

      if(GUI.Button(new Rect(10,50,80,30),"停止")) {

      m_audioSource.Stop(); }

      }

      目前比較流行的視頻播放方式有兩種,一種是直接在場景的物體上播放,另一種是在GUI層面上播放。不管哪一種視頻播放方式,其主要代碼如下:

      public MovieTexture m_movTexture; //定義視頻紋理

      void Start () {

      ……

      M_movTexture.loop = true; //設(shè)置視頻紋理的播放方式為循環(huán)播放

      }

      void OnGUI(){

      if (GUILayout.Button ("播放")) {

      if(!m_movTexture.isPlaying)

      m_movTexture.Play(); }

      if (GUILayout.Button ("停止"))

      m_movTexture.Stop ();

      }

      三、測試與分析

      在完成所有功能后運(yùn)行場景測試其流暢性,觀察模型、貼圖與實(shí)際是否相符等,修改并重復(fù)測試,最后導(dǎo)出為EXE格式。測試證明,采用上述的設(shè)計(jì)理念和方法實(shí)現(xiàn)了基于3DSMAX和Unity3D的三維虛擬校園漫游,其運(yùn)行流暢、逼真程度高、交互性強(qiáng),能夠滿足不同用戶的需求。

      總之,本次漫游設(shè)計(jì)使用了AutoCAD、Photoshop、3DMAX、Unity3D等軟件,以廣西理工職業(yè)技術(shù)學(xué)院實(shí)景校園為藍(lán)本進(jìn)行了設(shè)計(jì)和制作,實(shí)現(xiàn)了三維虛擬校園的漫游。在后續(xù)還可對漫游設(shè)計(jì)進(jìn)行二次開發(fā),加入更多元素以豐富虛擬校園漫游,使漫游更真實(shí);同時(shí)開發(fā)適用于多平臺的版本,以增強(qiáng)對外宣傳的效果。

      【參考文獻(xiàn)】

      [1]王彩玲,劉瑞香,宋釗.基于Unity3D的虛擬校園漫游的設(shè)計(jì)與實(shí)現(xiàn)[J].科技視界,2015(5)

      [2]郭仁春,霍西寶,玉錦宏,等.基于3DMAX及Unity3D技術(shù)實(shí)現(xiàn)數(shù)字化虛擬校園的網(wǎng)絡(luò)建設(shè)[J].信息系統(tǒng)工程,2017(5)

      [3]劉發(fā)久.基于Unity3D的虛擬校園[J].電子設(shè)計(jì)工程,2016(6)

      [4]李吉鋒.基于3DS MAX及UNITY 3D的虛擬校園系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].廈門:華僑大學(xué),2016

      [5]董春俠,司占軍.基于Unity3D的虛擬校園App設(shè)計(jì)與開發(fā)[J].軟件導(dǎo)刊,2017(2)

      [6]王星捷,李春花.基于Unity3D平臺的三維虛擬城市研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(4)

      【作者簡介】蒙秋瓊(1984— ),廣西理工職業(yè)技術(shù)學(xué)院計(jì)算機(jī)應(yīng)用專業(yè)教研室主任,講師。

      (責(zé)編 盧 雯)

      猜你喜歡
      第一人稱漫游攝像機(jī)
      霹靂漫游堂
      漢代銅鏡銘文中的第一人稱
      攝像機(jī)低照成像的前世今生
      新安訊士Q6155-E PTZ攝像機(jī)
      NASA漫游記
      如何消除和緩解“攝像機(jī)恐懼癥”
      “我”最初是古代兵器
      邊走邊看:漫游海底 夢想成真
      高清新陣營
      榆社县| 五家渠市| 克什克腾旗| 东源县| 屏南县| 德昌县| 会理县| 临武县| 昌邑市| 建阳市| 桦川县| 宁蒗| 云和县| 莱阳市| 来凤县| 罗江县| 镇原县| 大同市| 元氏县| 阜新市| 肇州县| 滨海县| 泰宁县| 封开县| 东莞市| 高州市| 修武县| 商丘市| 临沂市| 锡林郭勒盟| 池州市| 赤峰市| 景谷| 阿坝县| 泗水县| 宁波市| 定西市| 枝江市| 长岭县| 麟游县| 栾川县|