亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

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

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

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

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

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

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

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

        具體流程如圖1所示。

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

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

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

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

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

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

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

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

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

        構(gòu)建地表模型,需要將從谷歌地球上獲取的校園地形圖在CAD上進行處理,使用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)整大小和方向,在每個有宣傳展示功能的建筑物邊上設(shè)置進入建筑物的引導(dǎo)按鈕,使得能夠跳轉(zhuǎn)進入建筑物內(nèi)部漫游和瀏覽。

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

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

        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像機視圖為正方形

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

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

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

        void Control() {

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

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

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

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

        m_camRot.x-=m_v;

        m_camRot.y+=m_h;

        m_camTransform.eulerAngles=m_camRot;

        //使主角的面向方向與攝像機一致

        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),記錄射線碰撞點

        }

        }

        //使用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è)計將進入建筑物內(nèi)部的漫游采用場景跳轉(zhuǎn)切換的方式進行,在相應(yīng)的建筑物邊上加入UI控件Button設(shè)置進入內(nèi)部漫游指示牌,使用代碼Application.LoadLevel(“scence_n”);跳轉(zhuǎn)切換場景。

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

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

        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 ();

        }

        三、測試與分析

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

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

        【參考文獻】

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

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

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

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

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

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

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

        (責(zé)編 盧 雯)

        猜你喜歡
        第一人稱漫游攝像機
        霹靂漫游堂
        看監(jiān)控攝像機的4K之道
        漢代銅鏡銘文中的第一人稱
        中國收藏(2017年4期)2017-05-13 07:23:02
        攝像機低照成像的前世今生
        新安訊士Q6155-E PTZ攝像機
        NASA漫游記
        第一人稱小木屋
        如何消除和緩解“攝像機恐懼癥”
        新聞前哨(2015年2期)2015-03-11 19:29:25
        “我”最初是古代兵器
        邊走邊看:漫游海底 夢想成真
        伊人中文字幕亚洲精品乱码| 国产思思久99久精品| 粉嫩国产白浆在线播放| 青青草视频在线观看9| 99久久99久久久精品蜜桃| 人妻 偷拍 无码 中文字幕| 无码精品日韩中文字幕| 久久中国国产Av秘 入口| 日本精品久久中文字幕| 美丽小蜜桃1一3在线观看| 亚洲色图视频在线观看,| 日本一区二区三区清视频| 老熟女富婆激情刺激对白| 国偷自产视频一区二区久| 97超级碰碰人妻中文字幕 | 亚洲精品无码av人在线播放| 国产95在线 | 欧美| 欧美亚洲尤物久久综合精品| 日本精品久久久久中文字幕1| 国产精品一区二区蜜臀av| 国产毛片视频一区二区| 国产日产精品一区二区三区四区的特点 | 国产成人精品免费视频大全| 国产免费精品一品二区三| 黄色av一区二区在线观看| 亚洲成av人片天堂网| 欧美视频九九一区二区| 亚洲视频综合在线第一页| 久久人妻一区二区三区免费| 日本中文一区二区在线观看| 久久精品国产视频在热| 91精品国产免费久久久久久青草| 人妻av不卡一区二区三区| 国产91人妻一区二区三区| 亚洲欧美日韩国产精品一区二区 | 国产熟女高潮视频| 成年女人片免费视频播放A| 日韩五码一区二区三区地址| 领导边摸边吃奶边做爽在线观看| 亚洲欧美日韩精品久久亚洲区| 亚洲欧美日本人成在线观看|