牛慶麗 薛煥唐 黃海林
摘要:利用Unity3D技術(shù)實(shí)現(xiàn)了黃河風(fēng)景名勝區(qū)的三維交互漫游系統(tǒng)。通過三維漫游系統(tǒng)功能模塊分析、關(guān)鍵技術(shù)研究、黃河風(fēng)景區(qū)三維模型的建立、場(chǎng)景的導(dǎo)入、漫游的設(shè)計(jì)及天空盒子的添加等問題實(shí)現(xiàn)了黃河風(fēng)景名勝區(qū)景點(diǎn)的漫游。通過虛擬漫游讓游客足不出戶更好的了解風(fēng)景區(qū)的文化氣息和建筑物特色為吸引游客并帶動(dòng)鄭州市的旅游業(yè)發(fā)展,起到很好的宣傳作用。
關(guān)鍵詞:黃河風(fēng)景區(qū);三維場(chǎng)景;虛擬漫游
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)20-0149-03
The Realization of Virtual Roaming of the Yellow River Scenic Area Based on Unity3D
NIU Qing-li, XUE Huan-tang, HUANG Hai-lin
(College of Information Engineering, Zhengzhou University of Science & Technology, Zhengzhou 450064, China)
Abstract: Three-dimensional interactive roaming system is realized using Unity three-dimension technology in the Yellow River scenic area. The roaming of the Yellow River scenic area can be realized through the analysis of this systems function module, key technology research, the establishment of the Yellow River scenic area three-dimension model, importing of scenes, roaming design, the adding of skybox and so on. Virtual roaming allows visitors to better understand the culture of the scenic spot at home and buildings characteristics to attract tourists and promote the tourism development of Zhengzhou, which has a very good propagandistic effect.
Key words: The Yellow River scenic spot; Unity3D; virtual roaming
黃河風(fēng)景名勝區(qū)(以下簡(jiǎn)稱黃河風(fēng)景區(qū))位于河南省鄭州市西北約三十公里處,北臨黃河,南依岳山,被譽(yù)為萬里黃河上一顆璀璨的明珠。作為鄭州市十大旅游景區(qū)之一的旅游勝地,多年來,風(fēng)景區(qū)內(nèi)綠樹滿山,亭閣相映,山清水秀,景色宜人,吸引著越來越多的游客來此游玩,盡管如此,外地的游客對(duì)于黃河風(fēng)景區(qū)景點(diǎn)的特色還是了解甚少,甚至有些游客沒有時(shí)間來此游玩,為此,本文主要介紹利用Unity3D技術(shù)完成風(fēng)景區(qū)虛擬漫游的實(shí)現(xiàn),讓游客在百忙之中可以通過計(jì)算機(jī)虛擬技術(shù)來瀏覽風(fēng)景區(qū)內(nèi)的場(chǎng)景、建筑群和景區(qū)傳播的文化氣息。
1 漫游系統(tǒng)實(shí)現(xiàn)目標(biāo)
黃河風(fēng)景名勝區(qū)虛擬現(xiàn)實(shí)漫游系統(tǒng)旨在提供一個(gè)景區(qū)的三維虛擬展示平臺(tái),游客通過虛擬漫游系統(tǒng)以第一人稱的方式在景區(qū)內(nèi)跟隨相機(jī)走動(dòng)。漫游系統(tǒng)中包括風(fēng)景區(qū)場(chǎng)景的3Dmax的建模、在Unity3D中生成風(fēng)景區(qū)的三維場(chǎng)景自由漫游、向游客展示黃河風(fēng)景區(qū)的地形地貌、景點(diǎn)分布、基礎(chǔ)服務(wù)設(shè)施分布等信息,同時(shí)漫游系統(tǒng)在完整性上應(yīng)保證用戶可以自由漫游游覽景點(diǎn)建筑群,切換景區(qū)場(chǎng)景點(diǎn)漫游等要求。由于黃河風(fēng)景區(qū)景點(diǎn)眾多本文主要以風(fēng)景區(qū)大場(chǎng)景、炎黃二帝中心廣場(chǎng)為例作為研究重點(diǎn),通過對(duì)景區(qū)的三維虛擬仿真,向游客展示黃河名勝區(qū)的獨(dú)特魅力,為此漫游系統(tǒng)的設(shè)計(jì)目標(biāo)為:
1)以一定的比例來縮小風(fēng)景區(qū)場(chǎng)景,但保證場(chǎng)景真實(shí)還原;
2)場(chǎng)景中實(shí)現(xiàn)第一人稱漫游;
3)在漫游過程中實(shí)現(xiàn)碰撞檢測(cè)處理;
4)用戶可以根據(jù)電腦選擇分辨率和畫質(zhì)模式的選擇。
1.1 漫游系統(tǒng)開發(fā)工具
1)場(chǎng)景開發(fā)工具
Unity3D是由Unity Technologies公司開發(fā)的一個(gè)讓用戶輕松創(chuàng)建諸如三維視頻游戲、建筑虛擬可視化、實(shí)時(shí)三維動(dòng)畫等類型的多平臺(tái)、跨平臺(tái)的綜合型3D可視化開發(fā)軟件[1],在黃河風(fēng)景名勝區(qū)的場(chǎng)景交互中,利用Unity3D強(qiáng)大的圖形交互開發(fā)環(huán)境可以輕松的導(dǎo)入風(fēng)景區(qū)內(nèi)的3D建筑物,利用Unity3D的三維場(chǎng)景構(gòu)建工具,實(shí)現(xiàn)風(fēng)景區(qū)內(nèi)場(chǎng)景的自由漫游、指定景點(diǎn)漫游等,通過Unity3D的SKY-BOX添加諸如晴天、陰天、雨天等不同天氣條件下風(fēng)景區(qū)的自然景觀瀏覽,鑒于黃河風(fēng)景區(qū)內(nèi)龐大的建筑群及繁茂的樹木群,利用Unity3D的跨平臺(tái)三維場(chǎng)景交互能力和強(qiáng)大的場(chǎng)景樹制作功能完成對(duì)黃河風(fēng)景游覽區(qū)內(nèi)場(chǎng)景的制作。
2)場(chǎng)景建模工具
3D Studio Max,是Discreet公司開發(fā)的基于PC系統(tǒng)的三維動(dòng)畫渲染和制作軟件。3Dmax擁有先進(jìn)的渲染和仿真功能、強(qiáng)大的繪圖、紋理和建模工具集以及更流暢的多應(yīng)用工作流。由于黃河風(fēng)景區(qū)炎黃二帝像規(guī)模宏大,主場(chǎng)景區(qū)各種樹木、鼎、牌坊的色彩鮮艷,建筑物的片面較多,為了在Unity3D中表現(xiàn)出風(fēng)景區(qū)內(nèi)清晰的建筑物和場(chǎng)景, 保證景區(qū)內(nèi)建筑區(qū)的色彩和較高的清晰度3Dmax無疑是最好的建模工具。
1.2 漫游系統(tǒng)開發(fā)流程
首先,虛擬漫游系統(tǒng)的制作需要到黃河風(fēng)景區(qū)實(shí)地進(jìn)行考察勘測(cè),進(jìn)行實(shí)地拍照取證測(cè)量行走路線的比例尺,漫游系統(tǒng)選擇使用CAD平面圖和補(bǔ)測(cè)的精準(zhǔn)數(shù)據(jù)確定虛擬黃河風(fēng)景區(qū)的地理位置,這樣才能把完整的場(chǎng)景按照相應(yīng)的尺寸縮減進(jìn)入U(xiǎn)nity3D的場(chǎng)景中[2]。其次,把實(shí)地勘測(cè)的圖片數(shù)據(jù),用3Dmax軟件進(jìn)行構(gòu)圖,建立各個(gè)地物以及場(chǎng)景的模型,通過烘焙貼圖、紋理、減面等,然后保存為FBX格式導(dǎo)入U(xiǎn)nity3D中,利用Unity3D中的JavaScript技術(shù)實(shí)現(xiàn)場(chǎng)景中的人機(jī)交互,在人機(jī)交互中設(shè)定防碰撞檢測(cè)技術(shù)實(shí)現(xiàn)場(chǎng)景內(nèi)的漫游功能。最后,利用Unity3D中的導(dǎo)出生成可執(zhí)行文件如exe,flash等。黃河風(fēng)景區(qū)系統(tǒng)設(shè)計(jì)流程如圖1。
圖1 漫游系統(tǒng)設(shè)計(jì)
2 虛擬漫游系統(tǒng)關(guān)鍵技術(shù)
2.1 3D模型制作技術(shù)
黃河風(fēng)景區(qū)虛擬現(xiàn)實(shí)系統(tǒng)是一個(gè)基于虛擬現(xiàn)實(shí)技術(shù)的三維虛擬旅游系統(tǒng),因此,三維模型以及三維場(chǎng)景的制作是系統(tǒng)開發(fā)中關(guān)鍵的一項(xiàng)工作。
場(chǎng)景模型的制作分為兩個(gè)部分,即地形和地物。由于黃河風(fēng)景區(qū)目前缺少大比例尺地形圖、航空影像等資料,因此采取的解決方法是:用免棱鏡全站儀實(shí)測(cè)單個(gè)景點(diǎn)區(qū)域,以確定風(fēng)景區(qū)景點(diǎn)各個(gè)地物的準(zhǔn)確位置。地物包括各種建筑物、公共設(shè)施以及花草,假山石頭、樹木等,其模型制作主要是通過現(xiàn)場(chǎng)拍攝實(shí)物照片獲取紋理、測(cè)量點(diǎn)數(shù)據(jù)獲得其外形輪廓。對(duì)部分形狀不規(guī)則,建模難度較高的物體,通過近景拍攝的方式重建其三維模型。
1)場(chǎng)景模型制作
三維場(chǎng)景中的地物模型,主要是指風(fēng)景區(qū)內(nèi)的各種小物品物件,例如:石桌椅、各種提示牌、雕塑、大門、景區(qū)內(nèi)各種建筑物等。地物模型采用3Dmax 2010進(jìn)行制作。以風(fēng)景區(qū)入口大
圖2 風(fēng)景區(qū)大門入口3D建模圖
門為例,采用堆砌建模、網(wǎng)格建模、細(xì)分建模、面片建模 Nuburs曲線建模等方法[3],完成大門的幾何建模,然后在Photoshop中對(duì)模型進(jìn)行紋理貼圖,調(diào)節(jié)材質(zhì),制作成真實(shí)感較強(qiáng)的三維模型,在使用3Dmax制作風(fēng)景區(qū)建筑物的3D模型中為了保證模型的清晰度,在制作的過程中,建筑物的片面較多,且生成建筑物的.3ds格式的文件在Unity3D場(chǎng)景中為了保證漫游的流暢性,需要在3DMax中對(duì)建筑物的模型進(jìn)行片面減面、烘焙處理等,經(jīng)過以上處理后風(fēng)景區(qū)3Dmax建模入口大門如圖2。
2)烘焙貼圖與燈光
為了保證風(fēng)景區(qū)制作的3D模型在Unity3D中流暢的進(jìn)行渲染,因此在制作過程中需要進(jìn)行優(yōu)化處理,烘焙處理和減面。進(jìn)行烘焙的貼圖有很多種,比如燈光高光法線置換等。在風(fēng)景區(qū)建筑物中烘焙貼圖的主要目的還是以優(yōu)化片面為主的,通過烘焙燈光貼圖產(chǎn)生光照和陰影效果,打造偽燈光,減少多邊形和片面的數(shù)量在處理時(shí)采用三角形優(yōu)化片面方法[4],如果場(chǎng)景中有太多多邊形,會(huì)導(dǎo)致在場(chǎng)景中計(jì)算機(jī)圖形渲染時(shí)模型變慢的問題,不能維持最低的接受的幀率。在黃河風(fēng)景區(qū)中采用(Render To Textures)即貼圖烘焙技術(shù),在制作時(shí)把復(fù)雜的Max光照信息被渲染成貼圖的過程,然后把烘焙后的貼圖再貼回到場(chǎng)景中去,這樣光照信息變成了貼圖,節(jié)省了大量的CPU計(jì)算,提高了計(jì)算機(jī)渲染圖形的能力,省去了無效的光能傳遞時(shí)漫游動(dòng)畫抖動(dòng),同時(shí)減少了Untiy3D中場(chǎng)景漫游切換時(shí)場(chǎng)景的滯后問題。
在制作黃河風(fēng)景區(qū)3D模型時(shí),為了保證圖形的清晰度需要對(duì)Unity3D中的場(chǎng)景進(jìn)行燈光的處理,對(duì)于燈光,采用Max自帶的Light Tracer光線追蹤進(jìn)行渲染。由于在烘焙前會(huì)給出固定的烘焙燈光,燈光的高度、角度、參數(shù)均不可調(diào)整,所以可以在頂視圖中將燈光組平移到視圖區(qū),用燈光合并場(chǎng)景然后再進(jìn)行烘焙。
2.2 虛擬漫游功能實(shí)現(xiàn)
1)風(fēng)景區(qū)地形創(chuàng)建
利用Unity3D中的Terrain工具,可以生成風(fēng)景區(qū)的三維地形,在建模型前先設(shè)置好單位,
在同一場(chǎng)景中用到的模型單位設(shè)置必須一致,模型與模型之間的比例要正確,應(yīng)該和程序的
導(dǎo)入單位一致,方便程序中按統(tǒng)一比例調(diào)整縮放,在風(fēng)景區(qū)中定義統(tǒng)一單位為米。風(fēng)景區(qū)地形創(chuàng)建過程為在Unity3D菜單欄中選擇“Terrain”一>"Create Terrain",這樣就創(chuàng)建了一塊面積較大的平面區(qū)域,面積大小也可以在Terrain工具欄下的“Set Resolution”選項(xiàng)中進(jìn)行調(diào)整,因?yàn)槟P鸵栏接诘匦紊?,所以可以通過調(diào)整地形和模型的坐標(biāo)讓它們處在同一個(gè)面[5]。
2)場(chǎng)景的導(dǎo)入
為保證場(chǎng)景在漫游時(shí)貼圖不至于丟失,需要把在3DMax建模中使用的圖片、文件、文件夾以及模型中物體、材質(zhì)等統(tǒng)一復(fù)制到Textures目錄下,并且在命名時(shí)不能采用中文或特殊符號(hào)。再打開Max文件,導(dǎo)出為FBX文件,由于風(fēng)景區(qū)內(nèi)建筑物眾多,所以在制作時(shí)把模型分為幾大類,比如:樹木、植被、建筑、地形、牌坊、鼎,石像等,然后分開導(dǎo)出將包含Max文件、FBX文件和Textures文件夾的文件拷貝到Unity3D項(xiàng)目的Assets目錄下,完成圖片的復(fù)制工作。當(dāng)再次啟動(dòng)Unity3D時(shí),所有的項(xiàng)目都會(huì)自動(dòng)導(dǎo)入編輯器生成文件夾信息,并生成Materials文件夾,風(fēng)景區(qū)的部分貼圖如圖3。
3)風(fēng)景區(qū)3D漫游實(shí)現(xiàn)
圖3 Materials風(fēng)景區(qū)貼圖
漫游系統(tǒng)采用第一人稱主視角的方式進(jìn)行漫游,給觀賞者更強(qiáng)的深入感。利用FirstPersonController作為用戶的控制對(duì)象該對(duì)象由四個(gè)組件組成:TransformFPSInputContrController(script,Character,Controller(script,MouseLook(script在Unity3D中,是以層次關(guān)系來組織相關(guān)物體的,在工程面板中,可以看FirstPersonController中有兩個(gè)子物體:一個(gè)是Graphics,另一個(gè)是Main Camera。Transform組件:用來控制物體的旋轉(zhuǎn)、縮放和定位;FPSInputController:是實(shí)現(xiàn)第一人稱漫游的核心,在風(fēng)景區(qū)中通過一個(gè)附著在 FirstPersonController上的JavaScript腳本,它可以實(shí)現(xiàn)用戶通過鍵盤操作場(chǎng)景進(jìn)行行走、跳躍、奔跑、旋轉(zhuǎn)的功能,同時(shí)可以調(diào)節(jié)前進(jìn)的速度、跳躍速度J和重力等; CharacterController:角色控制器,提供了碰撞檢測(cè)功能,場(chǎng)景中物體之間發(fā)生力的互相作用時(shí)會(huì)產(chǎn)生碰撞,在風(fēng)景區(qū)漫游時(shí)通過調(diào)整Slope Limit可以讓角色實(shí)現(xiàn)翻山越嶺的果,MouseLook也是附屬于 FirstPersonController上的一個(gè)C#腳本。它實(shí)現(xiàn)功能是用戶用鼠標(biāo)控制角色水平垂直兩個(gè)平面視野的旋轉(zhuǎn)。MainCamera作為漫游時(shí)的一個(gè)重要的組件,它提供了用戶的視點(diǎn),在起到展示場(chǎng)景的同時(shí)通過調(diào)節(jié)其各個(gè)屬性,可以改變相機(jī)的渲染效果,通過參數(shù)設(shè)置,調(diào)整第一人稱控制器在場(chǎng)景中的位置,可以看到控制器和地面模型發(fā)生碰撞后,用戶站立在場(chǎng)景中,通過鍵盤操作即可進(jìn)行漫游操作。
2.3 場(chǎng)景樹生成和Skybox添加
1)場(chǎng)景樹
為節(jié)省資源保持運(yùn)行的流暢,使用Unity3D自帶的場(chǎng)景樹功能將大大節(jié)省資源。為了加速場(chǎng)景的漫游Unity3D引擎對(duì)場(chǎng)景樹提供了支持,在場(chǎng)景中地面上可以放置千棵樹,實(shí)際渲染時(shí)此采用1個(gè)實(shí)際的幀率渲染它們。在風(fēng)景區(qū)漫游場(chǎng)景中將靠近相機(jī)的樹渲染為3D,將遠(yuǎn)離攝像機(jī)的樹轉(zhuǎn)變?yōu)?D公告板,利用公告牌自己轉(zhuǎn)動(dòng)自己的原理,這樣做出來的場(chǎng)景樹無論從哪個(gè)角度觀察都是場(chǎng)景樹[8]如圖4所示。
圖4 通過樹添加成森林
2)SkyBox添加
為了真實(shí)的展示黃河風(fēng)景區(qū)在不同氣候條件下的景區(qū)場(chǎng)景,比如晴天,陰天,霧天、雨天等場(chǎng)景,在系統(tǒng)中利用 Unity3D自帶的SkyBox實(shí)現(xiàn)。選擇菜單欄的“Assets”->“Import package”->“Sky boxes”把所有的Skyboxes都添加進(jìn)入“Material”點(diǎn)擊“Edit”->“Render setting”。例如:制作晴天的黃河風(fēng)景區(qū),在選擇Unity3D中的SkyBox中添加Sunny1 SkyBox添加成功后點(diǎn)擊預(yù)覽效果,如圖 5所示,就可以看到一個(gè)很逼真的太陽。
圖5 風(fēng)景區(qū)晴天場(chǎng)景
3系統(tǒng)測(cè)試與總結(jié)
通過Unity3D生成EXE可執(zhí)行文件后對(duì)系統(tǒng)進(jìn)行了測(cè)試,用戶在漫游時(shí)可以根據(jù)自己的路徑進(jìn)行自由漫游,如圖6是用戶漫游時(shí)的炎黃二帝廣場(chǎng)效果圖。
圖6 炎黃二帝主廣場(chǎng)
通過Unity3D虛擬現(xiàn)實(shí)技術(shù)完成了黃河風(fēng)景區(qū)的虛擬場(chǎng)景漫游,給旅游產(chǎn)業(yè)帶來新的革命。通過風(fēng)景區(qū)漫游仿真系統(tǒng)使用戶足不出門就可以領(lǐng)略到黃河風(fēng)景區(qū)的名勝、建筑群、建筑特色,為黃河風(fēng)景區(qū)的網(wǎng)絡(luò)宣傳起到了巨大的推動(dòng)作用,漫游系統(tǒng)在被風(fēng)景區(qū)推廣到旅游網(wǎng)上后,使用戶在節(jié)省景區(qū)門票購買費(fèi)用的同時(shí),也使得黃河風(fēng)景區(qū)有機(jī)會(huì)被推廣到更多的人群中去,為風(fēng)景區(qū)的景區(qū)特色起到了很多好的宣傳作用。
參考文獻(xiàn):
[1] 吳亞峰, 杜華美,等.Unity 4 3D開發(fā)實(shí)戰(zhàn)詳解[M]. 北京: 人民郵電出版社, 2013: 216-222.
[2] 蔡翊. 基于Unity3D的金絲峽地質(zhì)公園虛擬旅游系統(tǒng)的研究與實(shí)現(xiàn)[D].西安: 西安科技大學(xué), 2012.
[3] 彭國安. 3DMAX建模與動(dòng)畫[M].武漢: 華中科技大學(xué)出版社, 2012.
[4] 黃心淵. 基于Unity3D的虛擬故園系統(tǒng)開發(fā)與實(shí)現(xiàn)[D]. 北京: 北京林業(yè)大學(xué), 2014.
[5] 趙韓, 曾文萱, 黃方毅, 董玉德. 基于Web的三維模型庫系統(tǒng)的研究與開發(fā)[J]. 合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版, 2005, 28(11): 1384-1388.
[6] 徐素寧, 韋中亞,等.虛擬現(xiàn)實(shí)技術(shù)在虛擬旅游中的應(yīng)用[J]. 地理學(xué)與國土研究, 2001, 17(3): 92-96.
[7] 魏迎梅. 虛擬環(huán)境中碰撞檢測(cè)問題的研究[D]. 長沙: 中國人民解放軍國防科學(xué)技術(shù)大學(xué), 2000.
[8] 云南“一顆印”居民數(shù)字虛擬展示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 廈門: 廈門大學(xué), 2012: 63-67.