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

基于Unity3D的綜合體育館虛擬漫游實現

2018-09-26 11:34:32王莉莉宋燕燕童氿一
數字技術與應用 2018年5期

王莉莉 宋燕燕 童氿一

摘要:隨著計算機技術和網絡技術的高速發展,虛擬現實技術逐漸走進人們的日常生活。建筑虛擬漫游作為虛擬現實技術的一個重要分支,被廣泛應用于場館展示項目中。本文以綜合體育館為虛擬漫游場景,使用3D Max軟件制作三維模型,Unity3D引擎為開發工具,實現了綜合體育場館第一人稱虛擬漫游。

關鍵詞:虛擬漫游;體育館;Unity3D;第一人稱漫游

中圖分類號:S126 文獻標識碼:A 文章編號:1007-9416(2018)05-0089-03

1 引言

虛擬現實技術是一種利用計算機模擬產生場景,并能實現虛擬現實環境的計算機仿真技術。利用最新的計算機虛擬現實技術創作的三維虛擬環境較二維照片和視頻更直觀形象,更逼真,臨場感更強。傳統體育場館在宣傳上,僅僅只能通過網站圖片的形式,缺乏現實空間感受。場景虛擬漫游技術的實現,可以讓使用者產生身臨其境的感覺,還可以在場景中通過交互,實現場館預定、查看詳細功能等。本項目的研究具有較高的實際應用價值。

2 虛擬漫游系統及Unity3D引擎

虛擬漫游系統是一種能夠集視覺、聽覺、觸覺為一體的虛擬環境,能夠實時仿真虛擬空間,可從任意角度對虛擬對象進行瀏覽觀察,可與其中的對象進行交互的新技術。具有沉浸感、交互性、構想性等特點。在建筑設計、城鄉規劃、家具裝潢、場景展示等領域,游戲設計與娛樂行業應用廣泛。

Unity3D是由Unity Technologies開發的一款跨平臺綜合游戲引擎,能夠運行在Windows和Mac OS X操作系統下,可以發布游戲到Windows,Mac,Wii,iPhone,WebGL(需要HTML5)和Android等多種平臺。腳本語言簡單,支持各種插件,開發速度快,跨平臺性好,可以讓用戶輕松創建3D游戲、建筑可視化、三維動畫等類型的交互式內容。

3 綜合體育館系統設計

本文所實現的綜合體育館漫游系統主要利用三維建模軟件3DS Max完成場景和模型的建模,利用Unity3D引擎來完成系統的漫游和交互。

3.1 系統總體設計目標

綜合體育館漫游系統主要包含乒乓球場、羽毛球場和籃球場所、觀眾席看臺四部分。使用者可通過鍵盤W、A、S、D鍵來控制位移,通過鼠標控制視角,可瀏覽場館任何區域。可查看場館預定信息、進行預定操作、查看操作說明和退出系統等。

3.2 系統功能模塊設計

本系統主要包括建模模塊、漫游模塊和交互模塊,功能結構圖如圖1所示。建模模塊主要實現綜合體育館整體建模和三個運動場區的建模;漫游模塊主要實現第一人稱視角位移和視角控制,碰撞檢測;交互模塊主要實現查看預定信息、預定場館、查看操作說明及退出系統功能。

4 綜合體育館漫游系統實現

4.1 建模模塊實現

本系統建模主要通過3DS Max軟件建模、貼圖、渲染、烘焙完成。主要包括體育館整體建模和三個運動場區的建模。在將模型導入Unity3D引擎前對模型面數進行了優化,將多個次要對象通過布爾運算合成一個對象,減少Unity3D的渲染負擔,檢查場景中的孤立點和面,適當刪除,調整貼圖模式,減少燈數。通過此類優化措施,提高系統運行效率。

(1)體育館整體場館建模。場館外觀為灰色,整體類正方形,有層次感,側面為透明玻璃。如圖2所示為導入Unity3D后的整體場館外觀圖。館內墻壁采用灰色吸音材料,可以隔絕噪音,保證比賽不受雜音影響。制作時,新建一個長20,寬5,高5的長方體,然后復制粘貼出多個同樣的長方體,再進行堆疊,將體育館模型構建出來。如圖3所示為導入Unity3D后的場館室內效果圖

(2)乒乓球場臺建模。乒乓球球臺按照國際標準設計,乒乓球球桌臺面尺寸為2740×1525mm,臺高為760mm,網寬1.83米,網高0.1525米。本系統中采用綠色桌面。如圖4所示為乒乓球球臺模型圖。

(3)羽毛球場建模。羽毛球球場按照國際標準尺寸設計,球場為長方形場地,長度為13.40m,場地寬為5.18m設計為單打場地。球場上各條線寬均為4cm,球場界限用白色畫出。羽毛球球網長6.10m、寬760mm,網孔大小在15-20mm之間,網的上沿有75mm寬的雙層白布。網柱高1.55m,兩根網柱分別立在雙打場地邊線的中點上。球網中部上沿離地面為1.524m,球網兩端高為1.55m。如圖5所示為羽毛球場模型圖。

(4)籃球場建模。籃球球場按照國際標準尺寸設計,整個籃球場地長28m,寬15m。籃圈下沿距地面3.05m。線條:寬度為5cm. 球場界線距觀眾席2m。中線向兩側邊線外各延長15cm。罰球線與端線平行,它的外沿距離端線內沿5.80m;這條線長為3.60m。罰球區是以罰球線中點為圓心,以1.80m為半徑,向限制區外畫出一個半圓區域,限制區內的半圓畫成虛線。罰球區中第一條線距離端線內沿1.75m,第一位置區的寬度為0.85m,并且與中立區域的始端相接。中立區域的寬度為0.40m,第二位置區與中立區域相鄰,寬度為0.85m,第三位置區與第二位置區相鄰,寬度也是0.85m。所有區域線條長度為0.10m,并垂直于罰球區邊線的外側。中圈畫在球場的中央,半徑為1.80m。三分投籃區距邊線1.25m,從端線引出兩條平行線,半徑為6.25m(量至圓弧外沿)的圓弧(半圓)與兩平行線相交圓心距端線內沿中點的距離為1.575m。如圖6所示為籃球場模型圖。

(5)觀眾席看臺建模。觀眾席以NBA聯賽中球館的觀眾席為模板進行設計,分為三層。第一層為觀眾椅,椅子高度為410mm,椅子座位寬度為200mm,共三排。第二層和第三層都是階梯型座位,每級階梯的座位間由隔板隔開,每級階梯高為400mm,共14級階梯。如圖7所示為觀眾席看臺模型圖。

4.2 漫游模塊實現

首先,在Unity3D中新建一個工程文件,自帶一個主攝像機和一個自然光。然后,將制作好的模型導入Unity 3D,將制作的場景拖入制作窗口。

(1)第一人稱漫游位移控制功能實現。首先,在場景中添加一個圓柱體,代表用戶。將主攝像機設定為跟隨圓柱體移動,通過控制場景中圓柱體的位移和攝像機的轉到,來實現用戶的位移和視角。通過代碼設置了向前行走、向后行走、橫向移動和跑動的速度,并對跳躍的高度進行了設置。控制第一人稱向前位移和向左位移的關鍵代碼如下:

if (Input.GetKey(KeyCode.W)) //設置鍵盤上的“W”鍵控制第一人稱視角向前移動

{ float x = Mathf.Sin(transform.eulerAngles.y * Mathf.Deg2Rad) * distance;

float z = Mathf.Cos(transform.eulerAngles.y * Mathf.Deg2Rad) * distance;

transform.Translate(new Vector3(x,0,z), Space.World); return true; }

if (Input.GetKey(KeyCode.A)) //設置鍵盤上的“A”鍵控制第一人稱視角向左移動

{transform.Translate(new Vector3(-distance, 0, 0)); return true;}

(2)第一人稱漫游視角控制功能實現。第一人稱漫游視角控制,主要通過攝像機的視角轉動設定為跟隨鼠標的移動而移動。如圖8所示為第一人稱視角漫游場景圖。視角控制的部分關鍵代碼如下:

public Camera cam;// 定義相機

public MovementSettings movementSettings = new MovementSettings();//定義相機視角移動

public MouseLook mouseLook = new MouseLook();// 跟隨鼠標移動而移動

public AdvancedSettings advancedSettings = new AdvancedSettings();

(3)碰撞檢測功能實現。碰撞檢測是虛擬漫游系統的重要功能,其作用是用來確保兩個不可穿透的對象互相不能共享相同的空間。首先,為圓柱體添加剛體,再通過為所有模型添加碰撞檢測Mesh Collider屬性來實現。

4.3 交互模塊實現

(1)查看預定功能實現。首先,新建一個button,將其命名為 “chakan”,將按鈕的文本名稱改為 “查看預定”。然后在按鈕上方新建一個Text文本框“yuding”。新建一個c#文件“mingdan”,通過代碼設置文本框初始不可見,編寫代碼,設置點擊按鈕后,如果文本框是顯示狀態則將其隱藏,如果文本框是隱藏狀態則將其顯示,然后將腳本拖到“chakan”的屬性欄中的Button(Script)中,再將拖到Button(Script)中的腳本文件拖到OnClick中,并設置點擊按鈕后執行mingdan.sendMessageUpwards。如圖9所示為查看場館預定功能圖。部分代碼如下:

void Start()

{ga=GameObject.Find(ganame);

ga.active=false; //設置開始可見性}

void OnClick() //控制顯示和隱藏的方法

{if (ga.active==true)//文本此時顯示

{ga.SetActive(false);//點擊后隱藏}

else if(ga.active==false)//文本此時隱藏

{ga.SetActive(true);//點擊后顯示}}}

(2)預定場館功能實現。首先,添加一個button和一個Input Filed。分別改名為“yuyue”和“yudingxinxi”,button控件的文本名稱改為“場地預定”。新建一個c#文件“xinxishuru”,編寫代碼使在Input Filed中輸入的內容能在查詢預定的文本框內顯示,將腳本拖到Input Filed屬性欄中的On Value Changed(String)中,設置對應的Text.text。

(3)操作說明功能實現。首先,先新建一個button,命名為“caozuo”,按鈕文本名稱改為“操作說明”。然后在button上方新建一個Text文本框“kongzhi”。通過代碼設置文本框初始不可見,新建一個c#腳本“shuoming”,編寫代碼,設置點擊按鈕后,如果文本框是顯示狀態則將其隱藏,如果文本框是隱藏狀態則將其顯示,然后將腳本拖到“caozuo”的屬性欄中的Button(Script)中,再將拖到Button(Script)中的腳本文件拖到OnClick中,并設置點擊按鈕后執行shuoming.sendMessageUpwards。

(4)退出系統功能實現。首先,先新建一個button控件,改名為“guanbi”,文本名稱改為“退出”。然后新建一個c#腳本,編寫好代碼后保存,將腳本拖到Button(Script)中,再拖到OnClick中,并設置執行tuichu.OnClick。退出漫游部分代碼如下:

public void ontuichu()

{Application.Quit ();// 退出漫游}

5 結語

虛擬現實漫游技術是一項應用廣泛的計算機綜合性技術,它利用計算機生成逼真的虛擬環境,通過漫游和交互讓用戶產生臨場感。本文使用3DS Max和Unity3D工具實現了綜合體育館虛擬漫游系統,系統包括建模、漫游、交互三個重要組成部分,采用碰撞檢測技術保證了系統的真實效果。系統設計效果良好,場景逼真。

參考文獻

[1]范國華,等.基于Unity的虛擬校園漫游系統的設計與實現[J].安徽農業科學,2016,44(1):325-327.

[2]曲寶,等.基于Virtools的虛擬家居漫游系統的設計與實現[J].計算機工程與科學,2009.12:130-133.

主站蜘蛛池模板: 99国产在线视频| 免费女人18毛片a级毛片视频| 老色鬼久久亚洲AV综合| 1769国产精品免费视频| 中文字幕亚洲第一| 国产在线91在线电影| 欧美日韩综合网| 欧美成人二区| 亚洲国产看片基地久久1024| 国产精品香蕉| 亚洲最黄视频| 视频二区中文无码| 国产爽妇精品| 免费中文字幕在在线不卡| 欧美.成人.综合在线| 亚洲男女天堂| 国产成人精品视频一区二区电影 | 亚洲天堂免费| 亚洲一区二区三区国产精品| 日本免费一区视频| 在线播放真实国产乱子伦| 高清无码一本到东京热| 国产 日韩 欧美 第二页| 国产欧美在线观看精品一区污| 四虎影视无码永久免费观看| 欧美精品在线免费| 97色伦色在线综合视频| 国产激情无码一区二区三区免费| 国产精品免费露脸视频| 99久久精品国产麻豆婷婷| 男女猛烈无遮挡午夜视频| 无码中字出轨中文人妻中文中| 午夜不卡视频| 国产视频只有无码精品| 日韩在线观看网站| 免费三A级毛片视频| 国产你懂得| 国产性精品| 99热这里只有精品免费| 国产午夜福利亚洲第一| 亚洲自拍另类| 伊人网址在线| AV网站中文| 激情网址在线观看| 九色91在线视频| www亚洲精品| 欧美97色| 漂亮人妻被中出中文字幕久久| 欧美成人午夜视频| 无码人中文字幕| 91国内外精品自在线播放| 视频一区视频二区中文精品| 中国丰满人妻无码束缚啪啪| 欧美日韩一区二区三区在线视频| 国产三级国产精品国产普男人| 欧类av怡春院| 国产三级毛片| 日韩国产一区二区三区无码| 欧美亚洲欧美区| 欧美色亚洲| 婷婷综合缴情亚洲五月伊| 伊人久久久久久久| 天天躁夜夜躁狠狠躁图片| 国产91丝袜在线播放动漫| 欧美性久久久久| 99伊人精品| 亚欧美国产综合| 永久在线精品免费视频观看| 日韩性网站| 久草热视频在线| 狠狠v日韩v欧美v| 亚洲三级成人| 老司机久久精品视频| 亚洲 成人国产| 欧美午夜精品| 99国产在线视频| 日本成人在线不卡视频| 亚洲清纯自偷自拍另类专区| 久久亚洲欧美综合| 亚洲精品视频在线观看视频| 亚洲日韩AV无码一区二区三区人| 亚洲无线国产观看|