汪俊峰 王星東 姚婷婷



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