999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2018-09-03 07:57:48蒙秋瓊
廣西教育·C版 2018年6期
關(guān)鍵詞:設(shè)置校園模型

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

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

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

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

近年來,虛擬現(xiàn)實(shí)技術(shù)發(fā)展迅猛,它作為一個(gè)體驗(yàn)平臺(tái)和設(shè)計(jì)工具的共同體,通過計(jì)算機(jī)融合多源信息、交互式的三維動(dòng)態(tài)視景和實(shí)體,創(chuàng)造出一個(gè)讓用戶“身處其中”的模擬環(huán)境,使用戶足不出戶就能獲得“身臨其境”的體驗(yàn)感。三維虛擬校園漫游是通過對(duì)校園環(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é)校對(duì)外宣傳、招生、校容校貌展示水平,提升了學(xué)校文化建設(shè)的對(duì)外影響力和知名度,使得學(xué)校在日益激烈的高職生源競爭中脫穎而出。本文以廣西理工職業(yè)技術(shù)學(xué)院的三維虛擬校園漫游為例,通過3DsMAX進(jìn)行建模和貼圖,使用Unity3D平臺(tái)制作校園地形,結(jié)合C#語言實(shí)現(xiàn)對(duì)三維虛擬校園第一人稱漫游的交互控制。

一、三維虛擬校園漫游開發(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)場(chǎng)測(cè)量門窗等獲取實(shí)景數(shù)據(jù)信息,為后期制作高仿真虛擬校園提供參考。

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

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

具體流程如圖1所示。

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

1.資源優(yōu)化。為了避免場(chǎng)景過大而增加網(wǎng)絡(luò)環(huán)境和設(shè)備的負(fù)擔(dān),本文所有建筑模型在主場(chǎng)景漫游時(shí)均以只顯示建筑物外觀的形式展現(xiàn),并通過跳轉(zhuǎn)方式進(jìn)入建筑物內(nèi)部漫游,解決了主場(chǎng)景載入時(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)動(dòng)場(chǎng)、路燈、花草樹木、人工湖、道路、地形模型等,可歸為建筑模型、環(huán)境模型、地表模型三大類。

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

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

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

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

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

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

小地圖的制作需要添加新的攝像機(jī)作為小地圖專用攝像機(jī),從上往下垂直拍攝校園道路層。創(chuàng)建一個(gè)球體,去掉其Sphere Collider屬性,放置在第一人稱膠囊體的層級(jí)之下作為第一人稱的替代體,跟隨主攝像機(jī)移動(dòng)并在小地圖中顯示出來。保持小地圖視圖是正方形的攝像機(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)。本部分主要分為第一人稱移動(dòng)控制、場(chǎng)景切換設(shè)置、媒體播放設(shè)置三個(gè)部分。

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

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

void Control() {

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

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)控制第一人稱替代體移動(dòng)的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)移動(dòng)的位置

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

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

}

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

3.媒體播放設(shè)置。在游覽時(shí)播放相應(yīng)的音樂,可以增加漫游的趣味性。在主場(chǎng)景中為地面或主攝像機(jī)添加audio source組件,在其屬性面板的AudioClip項(xiàng)中添加背景音樂文件,保持play on Awake和Loop選項(xiàng)的選擇以保證在運(yùn)行場(chǎng)景時(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(); //為腳本對(duì)象添加聲音源組件

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

}

目前比較流行的視頻播放方式有兩種,一種是直接在場(chǎng)景的物體上播放,另一種是在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 ();

}

三、測(cè)試與分析

在完成所有功能后運(yùn)行場(chǎng)景測(cè)試其流暢性,觀察模型、貼圖與實(shí)際是否相符等,修改并重復(fù)測(cè)試,最后導(dǎo)出為EXE格式。測(cè)試證明,采用上述的設(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ù)還可對(duì)漫游設(shè)計(jì)進(jìn)行二次開發(fā),加入更多元素以豐富虛擬校園漫游,使漫游更真實(shí);同時(shí)開發(fā)適用于多平臺(tái)的版本,以增強(qiáng)對(duì)外宣傳的效果。

【參考文獻(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平臺(tái)的三維虛擬城市研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(4)

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

(責(zé)編 盧 雯)

猜你喜歡
設(shè)置校園模型
一半模型
中隊(duì)崗位該如何設(shè)置
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
校園的早晨
琴童(2017年3期)2017-04-05 14:49:04
春滿校園
3D打印中的模型分割與打包
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
開心校園
主站蜘蛛池模板: 一级爆乳无码av| 国产一区二区三区精品欧美日韩| 国产日产欧美精品| 国产理论最新国产精品视频| 亚洲欧美成人在线视频| 国产欧美日韩91| 国产免费看久久久| 少妇精品网站| 最新国产在线| 国产超碰在线观看| 黄色免费在线网址| 日韩午夜伦| 高清无码不卡视频| 久久综合九色综合97网| 青青网在线国产| 欧美α片免费观看| a级毛片在线免费| 亚洲午夜国产片在线观看| 久久福利网| 欧美三级不卡在线观看视频| 成人中文字幕在线| 亚洲精品片911| 亚洲福利视频一区二区| 久久婷婷色综合老司机| 午夜限制老子影院888| 久久99热这里只有精品免费看| 久久中文字幕不卡一二区| 色九九视频| 在线观看国产黄色| 91精品国产91久久久久久三级| 在线精品亚洲国产| 中文字幕无码电影| 日韩av电影一区二区三区四区| 国产91视频免费观看| 国产h视频在线观看视频| 91青青草视频在线观看的| 日韩在线1| 最近最新中文字幕免费的一页| 亚洲高清无码久久久| 毛片a级毛片免费观看免下载| 久久永久视频| 天天摸天天操免费播放小视频| 亚洲欧美另类日本| 国产麻豆精品在线观看| 人人爽人人爽人人片| 韩国自拍偷自拍亚洲精品| 四虎永久在线| 最新国产在线| 91视频99| 中文字幕欧美日韩高清| 无码 在线 在线| 亚洲一级色| 91久久精品国产| 日韩精品一区二区三区中文无码| 五月婷婷导航| 欧美a在线看| 欧美亚洲激情| 色婷婷狠狠干| 国产成人禁片在线观看| 国产成人三级在线观看视频| 成人国产一区二区三区| 伊人久热这里只有精品视频99| 激情无码字幕综合| 在线观看国产精美视频| 黄色国产在线| 国产一区自拍视频| 黄色福利在线| 99久久精品免费看国产电影| 91视频区| 国产乱子伦精品视频| 亚洲a级毛片| 91网红精品在线观看| 波多野结衣无码AV在线| 有专无码视频| 成年人午夜免费视频| 日本在线欧美在线| 极品国产一区二区三区| 在线播放真实国产乱子伦| 亚洲精品无码久久久久苍井空| 中国特黄美女一级视频| 久久精品女人天堂aaa| 无码综合天天久久综合网|