汪俊峰 王星東 姚婷婷
摘 要:本系統(tǒng)以河南工業(yè)大學的3號和4號教學樓為模版,先對建筑物進行拍照,獲得紋理信息,并對建筑物進行測量,獲得相應的尺寸信息;然后以CAD的二維校園圖作為模型制作底圖,進而以3ds Max建模軟件建立三維模型,并進行紋理貼圖;最后將三維模型導入到Unity3D交互軟件實現(xiàn)教室分布的三維快速定位查詢及教室屬性信息的顯示。
關鍵詞:3ds Max;三維建模;Unity3D;教室查詢
中圖分類號:TP31 文獻標識碼:A 文章編號:1003-5168(2018)04-0038-03
Research on Classroom Three-dimensional Query Based on Unity3D
WANG Junfeng WANG Xingdong YAO Tingting
(College of Information Science and Engineering, Henan University of Technology, Zhengzhou Henan 450001)
Abstract: The system of Henan University of Technology, No. 3 and No. 4 teaching building for the template, the first to take pictures of the building, access to texture information, and the building measurements, access to the appropriate size information; then the CAD two-dimensional campus map as a model and then the three-dimensional model into the Unity 3D interactive software, texture mapping; finally, the 3D model is imported into Unity 3D interactive software to realize the 3D quick positioning query of classroom distribution and the display of classroom property information.
Keywords: 3ds Max;3D modeling;Unity 3D;classroom inquiry
1 研究背景
自從虛擬現(xiàn)實被提出后,在國內(nèi)外得到了迅速發(fā)展。美國是研究虛擬現(xiàn)實技術最早的國家,美國航天局(NASA)模擬太空的真實環(huán)境為宇航員創(chuàng)建了虛擬太空空間,為宇航員提供訓練[1]。中國展示的第一個含有歷史文化韻味的虛擬漫游系統(tǒng)是IBM與故宮博物館聯(lián)合推出的“故宮VR《紫禁城 天子的宮殿》”[2]。清華大學的虛擬漫游系統(tǒng)滿足用戶了解校園的需求,三維模型能展示出校園環(huán)境,使用者可以漫游其中,并與虛擬對象進行交互,實現(xiàn)了對虛擬校園環(huán)境中對象的查詢和信息顯示[3]。上海交通大學基于360°全景技術實現(xiàn)了虛擬校園,提供漫游、景觀信息查詢和顯示功能[4]。
本系統(tǒng)是基于3ds Max的三維建模技術和Unity3D三維引擎開發(fā)技術構建的,可實現(xiàn)對河南工業(yè)大學蓮花街校區(qū)3號和4號教學樓教室的快速定位及屬性查詢。具體功能為:①用戶可通過第一人稱角色控制器在三維教學樓場景中漫游;②用戶可與系統(tǒng)交互,通過選擇教室編號對教室進行定位和展示,并顯示教室的基本屬性信息。
2 三維場景的構建
2.1 模型制作
教學樓模型利用3ds Max三維建模軟件制作而成,也是本系統(tǒng)開發(fā)的基礎。為了能更加逼真地還原教學樓,事先對教學樓建筑物信息進行實地拍攝和信息收集,主要包括教學樓外觀輪廓、內(nèi)部結構、每層教學樓的平面圖、教學樓的紋理。用單反相機拍攝到的照片經(jīng)過Photoshop軟件處理后可以作為三維建筑物模型的紋理貼圖,照片的質(zhì)量將直接影響整個虛擬漫游環(huán)境的用戶體驗效果,所以需要注意拍攝時間、光照條件、拍攝位置、相機的傾斜角及拍攝的手段。
2.2 模型導入
不同軟件建立的模型導入到Unity3D中都要求一定的格式,3ds Max軟件建立的模型要以FBX文件格式才能導入。模型導入可能會造成模型貼圖的丟失,所以,將模型從3ds Max中導出時需要注意以下三個問題。
①嵌入的媒體。如果不選擇該項,3ds Max對模型的導出不包括貼圖資源,只有貼圖路徑的引用,不能真正地導出含有貼圖的模型,貼圖的資源路徑和名稱也不能是中文。
②單位設置。默認情況下,3ds Max軟件導出的模型再導入Unity3D中模型尺寸放大了100倍。因此,可以在Unity3D下Inspector面板中修改Scale Factor的值進行調(diào)整,還可以在3ds Max建模時設置基本單位為厘米。
③軸心設置。3ds Max導出的模型導入到Unity3D中總會出現(xiàn)軸向不符合要求的情況,因此,要對其進行一定的旋轉[5]。查閱相關資料發(fā)現(xiàn),模型導入后軸向會自動偏轉,在Unity3D中y軸是朝上的,所以在導出時選擇軸轉向為z軸向上。
2.3 場景構建
2.3.1 地形創(chuàng)建。通過Unity3D提供的地形編輯器組件,可方便地模擬真實地形效果。首先,獲取地形資源包后導入Unity3D中,點擊視圖中的Terrain組件,創(chuàng)建出地形,然后調(diào)整教學樓模型的位置。之后,在地形編輯器中編輯樹木、花草貼圖。選擇地形組件屬性框中Paint Texture按鈕,給“白膜”繪制上草、花的貼圖,單擊Edit Textures按鈕選擇貼圖,利用畫筆在地形上繪制。
2.3.2 添加角色控制器及其碰撞實現(xiàn)。導入角色資源包,把第一人稱控制器組件拖入到網(wǎng)格層次面板中,調(diào)整角色的位置和視角,以便場景進入到角色的視野中。主要用到的組件有Transform、Rigidbody、Capsule Collider。在這些組件中,修改前進的速度、爬坡的高度等參數(shù),使角色能在場景中漫游。另外,角色控制器組件默認情況下移動鼠標會旋轉視角,這在某種情況下會給我們的操作帶來很多困擾,所以要修改角色控制器下的Mouse Look腳本,實現(xiàn)檢測到鼠標按下時才旋轉視角,在Look Rotation( )方法中當按下鼠標左鍵時執(zhí)行函數(shù)。
3 系統(tǒng)開發(fā)
3.1 界面和菜單設計
本系統(tǒng)的界面設計采用Unity3D的NGUI插件,首先下載NGUI插件后導入,導入成功后菜單欄會增加NGUI菜單。
3.1.1 界面設計。選擇NGUI菜單下面的Create,在場景中創(chuàng)建Sprite將其命名為main,再創(chuàng)建main子節(jié)點index,在子節(jié)點下創(chuàng)建Lable和Sprite,分別作為系統(tǒng)的標題和按鈕,標題上添加Tween組件,以動畫的效果顯示,界面設計如圖1所示。
在工程面板中創(chuàng)建Resource及子文件夾prefab,把設計好的主界面直接拖到prefab文件夾下生成預制體,使界面在運行時才被實例化,設計的界面預制體必須放在Resource文件下,在Inspector面板中,物體是由預制產(chǎn)生的。
3.1.2 查詢菜單設計。由于河南工業(yè)大學3號和4號教學樓的教室編號是四位數(shù)字,所以這里設置4個下拉列表提供用戶選擇,然后是查詢按鈕和詳細信息按鈕的設計。
3.2 查詢功能實現(xiàn)
該系統(tǒng)是通過設計下拉框選擇教室編號實現(xiàn)查詢。根據(jù)收集的教室編號信息,對下拉列表的值進行設置,由于3號和4號教學樓教室編號不同,不同的下拉列表的值會根據(jù)用戶選擇的值而顯示。由于設計了在未選中下拉列表的值時后面下拉列表的值不能選擇,動態(tài)添加列表內(nèi)的值是通過把值存儲在集合中,在設計列表框時添加Box Collider,所以在鼠標選中當前列表值時會獲取當前選中的值。用戶在選擇樓層編號后會實現(xiàn)畫中畫的效果,在屏幕的右下角顯示該樓層的平面圖。
當選擇完教室的編號后,會對教室查詢的結果以一定的視角進行大概方位的定位顯示,并在平面圖上顯示出教室的位置,點擊圖標會進入到教室門口,圖2和圖3是教室編號為4120的定位效果圖。定位的實現(xiàn)是把教室的位置賦予第一人稱控制器,第一人稱控制器可在場景中漫游。
對教室進行定位的同時,點擊詳細信息按鈕,會彈出教室信息窗口,如圖4所示。信息顯示的實現(xiàn)是通過連接數(shù)據(jù)庫,在數(shù)據(jù)庫中創(chuàng)建教室信息屬性表,對表的行和列進行設計,把獲取的教室信息和行一一對應,存儲在數(shù)據(jù)庫的表中。
3.3 系統(tǒng)發(fā)布
Unity3D提供多種系統(tǒng)發(fā)布平臺,本系統(tǒng)采用的是PC版,直接運行.exe可執(zhí)行文件即可運行該系統(tǒng)。操作步驟如下。
①在系統(tǒng)功能完成后選擇File菜單下的Building Setting選項,選擇創(chuàng)建好的兩個場景:第一個場景是首頁場景,序號為0;第二個是查詢的場景,序號為1。因為發(fā)布后系統(tǒng)是按索引值載入場景的,所以首頁場景要確定索引值為0,查詢場景確定索引值為1。如果場景的索引順序不對,可進行拖動調(diào)整。
②Unity提供Platform選項選擇目標平臺PC & Linux Standalone,以PC單機版的形式發(fā)布,選擇PC單機版平臺后會被高亮顯示。另外,對發(fā)布的單機版進行了設置,去除了在啟動系統(tǒng)時的Resolution Dialog(分辨率對話框)。選擇Player Settings,在打開的窗口中設置Display Resolution為Disabled。
③做好發(fā)布的準備后點擊Build按鈕,選擇發(fā)布的位置,Unity會在相應的文件夾下生成一個數(shù)據(jù)文件夾和一個.exe可執(zhí)行的文件。點擊.exe文件,運行教室分布三維快速查詢系統(tǒng),系統(tǒng)可以很好地運行,且操作界面良好。
4 結論
本系統(tǒng)通過使用Photoshop圖片處理軟件處理紋理貼圖,3ds Max三維建模軟件制作建筑物、地形、樹木等校園環(huán)境的三維模型,Unity3D三維引擎軟件對整個場景進行編輯和快速查詢功能開發(fā),構建教室分布三維快速查詢系統(tǒng),不但可以讓用戶在計算機上通過地面瀏覽進行漫游,還可以實現(xiàn)對教室位置的快速定位和屬性信息的查詢,使用戶在虛擬漫游系統(tǒng)中具有較強的真實感。
參考文獻:
[1]周超.基于Unity3D的虛擬校園設計[D].桂林:廣西師范大學,2014.
[2]朱惠娟.基于Unity3D的虛擬漫游系統(tǒng)[J].計算機系統(tǒng)應用,2012(10):36-39,65.
[3]李俊軍.基于Unity3D的室內(nèi)建筑三維建模與交互系統(tǒng)實現(xiàn)[D].徐州:中國礦業(yè)大學,2014.
[4]仲于姍.基于Unity的3D虛擬校園漫游系統(tǒng)的開發(fā)[D].昆明:云南大學,2015.
[5]戴茜.基于Unity3D的虛擬故園系統(tǒng)開發(fā)與實現(xiàn)[D].北京:北京林業(yè)大學,2014.