版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、LUOYANG NORMAL UNIVERSITY 2015屆 本科畢業(yè)論文基于Unity實(shí)現(xiàn)虛擬樓盤展示制作 院(系)名稱專 業(yè) 名 稱學(xué)生姓名學(xué)號(hào)110424010指導(dǎo)教師完 成 時(shí) 間20155基于Unity實(shí)現(xiàn)虛擬樓盤展示制作馬天宇數(shù)學(xué)科學(xué)學(xué)院 信息與計(jì)算科學(xué) 學(xué)號(hào):110424010指導(dǎo)教師:劉青青摘要: Unity引擎推出后在全世界得到了大量的運(yùn)用。本文通過運(yùn)用Unity制作出來的是房地產(chǎn)虛擬展示的一個(gè)軟件,通過虛擬現(xiàn)實(shí)技術(shù)制作全方位三維展示以及逼確實(shí)動(dòng)畫和過場。關(guān)鍵詞:MentalRay烘培;材質(zhì);三維坐標(biāo);虛擬漫游;視頻播放;手指觸控引言虛擬現(xiàn)實(shí)(Virtual Reality
2、,簡稱VR)是最近幾年來新出現(xiàn)的高新技術(shù),也稱靈境技術(shù)或者人工環(huán)境,虛擬現(xiàn)實(shí)技術(shù)集成了計(jì)算機(jī)圖形(CG)技術(shù)、計(jì)算機(jī)仿真技術(shù)、人工智能、傳感技術(shù)、顯示技術(shù)、網(wǎng)絡(luò)并行處理等技術(shù)的最新進(jìn)展成果的集合,是一種由計(jì)算機(jī)技術(shù)輔助生成的高技術(shù)模擬系統(tǒng),虛擬現(xiàn)實(shí)技術(shù)的進(jìn)展與應(yīng)用離不開計(jì)算機(jī)技術(shù)的進(jìn)展,兩者是相輔相成的關(guān)系,假如要正確認(rèn)識(shí)和剖析并把握虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用與進(jìn)展,就必須深入研究計(jì)算機(jī)技術(shù)的變化與進(jìn)展趨勢,如此才能有利于我們以后更好的掌握與應(yīng)用虛擬現(xiàn)實(shí)技術(shù)。1 實(shí)時(shí)互動(dòng)的應(yīng)用程序能夠讓你閑逛在還沒有蓋好的房子里,或是回到幾世紀(jì)往常的廢墟讓你在里面能夠行走,盡管現(xiàn)在的計(jì)算機(jī)輔助繪圖技術(shù)(CAD)能建立
3、3D的模型,但仍不太容易真正的傳達(dá)客戶希望看到的視覺仿真效果。大多數(shù)的房地產(chǎn)公司仍然無法給予客戶一個(gè)身歷其境的體驗(yàn)的感受,而交互式的3D能夠讓我們制造出一個(gè)完整的模擬環(huán)境,現(xiàn)在差不多能夠做到讓客戶在房子還沒蓋好之前就能夠在以后的家里走來走去,甚至能夠體驗(yàn)到當(dāng)早晨的陽光從窗戶透進(jìn)來的感受。本篇論文與大伙兒一起分享Unity在非游戲領(lǐng)域的應(yīng)用實(shí)例,在房地產(chǎn)家居行業(yè)中,通過Unity開發(fā)的應(yīng)用將傳統(tǒng)設(shè)計(jì)師的工作化繁為簡并交予住戶,讓住戶自己設(shè)計(jì)呈現(xiàn)喜好的家居環(huán)境在虛擬現(xiàn)實(shí)中來感受及評估。制作地產(chǎn)樓盤漫游,能夠讓顧客更好的了解整個(gè)樓盤的規(guī)劃,效果,取代了以往圖片平面化信息的不夠直觀的表達(dá)效果,信息傳達(dá)
4、不夠直觀全面的弊端。在樓盤尚未建成,也能讓顧客身臨其境的感受到整個(gè)樓盤的居住環(huán)境,建筑外觀,配套設(shè)施,能夠推動(dòng)地產(chǎn)樓盤前期推廣的效率,促進(jìn)整體銷售的提升,更能提升整體地產(chǎn)公司整體的品牌及企業(yè)形象。研究要緊內(nèi)容 研究方法及手段以Unity3D為開發(fā)平臺(tái)開發(fā)的一個(gè)虛擬仿真樓盤展示系統(tǒng),是一個(gè)邏輯完整的、程序運(yùn)行流暢的三維軟件通過對相關(guān)資料的大量查詢以及對手指觸控的一些研究,對Unity3D游戲引擎有了相關(guān)的了解對Unity3D中需要使用的編輯語言C#進(jìn)行學(xué)習(xí),查閱C#相關(guān)資料,使自己的編程水平能夠滿足那個(gè)展示的差不多需要虛擬展示的制作過程以及軟件實(shí)現(xiàn)后的整體過程大致分為以下幾個(gè)步驟: 1)了解3D
5、max建模軟件以及Mental Ray渲染器,掌握相關(guān)的差不多操控,熟悉3Dmax的四角面建模以及Mental Ray烘培方法。 2)熟悉Unity3D引擎,掌握unity差不多的編輯器操作,熟悉Unity3D每個(gè)功能模塊的作用和操作方法熟練使用unityAPI的方法。3)設(shè)計(jì)軟件的UI主界面,對軟件的整體功能進(jìn)行架構(gòu),明確虛擬展示軟件的要緊功能以及軟件的風(fēng)格。4)設(shè)計(jì)軟件的內(nèi)容,策劃軟件的主題,并設(shè)定軟件的相關(guān)場景。5)依照不人的需求和自己的理解,在Unity3D中制作下相關(guān)部分,包括交互邏輯,加載邏輯,UI邏輯,漫游邏輯等,用到了Easy Touch插件和NGUI插件。6)初步測試,對系統(tǒng)
6、的各項(xiàng)功能進(jìn)行測試,及時(shí)發(fā)覺問題,進(jìn)行逐項(xiàng)解決。7)在PC上進(jìn)行公布,并進(jìn)行測試,完成在PC端觸控上的正常操作。8) 在IOS上進(jìn)行公布,并進(jìn)行測試,解決Ipad平板上的正常操作。1.2 開發(fā)的環(huán)境PSPhotoshop經(jīng)常用做于圖像處理,而不是圖形創(chuàng)作。圖像處理是對已有的位圖圖像進(jìn)行編輯加工處理以及運(yùn)用一些專門效果,要緊用做于在于對圖像的處理加工;圖形創(chuàng)作軟件是按照自己的構(gòu)思創(chuàng)意,使用矢量圖形等來設(shè)計(jì)圖形。3DMax3D Studio Max,(原名:3D Studio Max),常簡稱為3ds Max或MAX,是Autodesk傳媒娛樂部開發(fā)的基于PC系統(tǒng)的全功能的三維計(jì)算機(jī)圖形軟件。 M
7、ayaAutodesk Maya是美國Autodesk公司出品的世界頂級的三維動(dòng)畫軟件,運(yùn)用領(lǐng)域是專業(yè)的影視廣告,角色動(dòng)畫,電影特技等。Maya引擎的功能完善,工作靈活多變,易學(xué)易明白易用,制作效率專門高,渲染真實(shí)感極強(qiáng),是電影級不的高端制作動(dòng)畫軟件,Mental Ray渲染器Mental ray是一個(gè)專業(yè)的3D渲染引擎,它能夠生成十分逼確實(shí)高質(zhì)量真實(shí)感專門強(qiáng)的圖象?,F(xiàn)在你能夠在3D Studio的高性能網(wǎng)絡(luò)渲染中直接操縱Mental ray 。它在電影領(lǐng)域得到了大量的應(yīng)用和認(rèn)可,被認(rèn)為是市場上最高級的三維渲染解決方案之一。Unity3DUnity3D是由UnityTechnologies開發(fā)
8、的一個(gè)玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫的類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。C#C#是C+衍生出來的面向?qū)ο蟮木幊陶Z言,是微軟公司公布的一種面向?qū)ο蟮挠贜ETFramework之上的高級程序設(shè)計(jì)語言,并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺(tái)亮相,C#是微軟公司研究員AndersHejlsberg的最新成果,C#看起來與Java有著驚人的相似,它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運(yùn)行的過程,C#是微軟公司NETwindows網(wǎng)絡(luò)框架的主角。AEAdobe After Effects簡稱“AE”是Ado
9、be公司推出的一款圖形視頻制作和處理軟件,適用于從事視頻設(shè)計(jì)和視頻特效的機(jī)構(gòu),包括電視臺(tái)、動(dòng)畫制作公司、個(gè)人后期制作工作室以及多媒體工作室。屬于層類型后期制作類軟件。XcodeXcode 是蘋果公司開發(fā)的特有的編程軟件,是開發(fā)人員建立OS X 和 iOS 應(yīng)用程序的最快捷的方式。Xcode 具有統(tǒng)一的用戶界面設(shè)計(jì),編碼、測試、調(diào)試都在一個(gè)簡單的窗口內(nèi)完成。2 Unity3D簡介2.1 Unity3D總體概述Unity3D是一個(gè)用于創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的綜合型創(chuàng)作工具,由Unity Technologies開發(fā),是一個(gè)全面整合的專業(yè)游戲引擎,Unity類似
10、于Director,Blender,Virtools或Torque Game Builder等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件其編輯器運(yùn)行在Windows 和Mac OS X下,可公布游戲至Windows、Mac、Wii、iPhone、Windows phone 8和Android平臺(tái),也能夠利用Unity web player插件公布網(wǎng)頁游戲,支持Mac 和Windows的網(wǎng)頁掃瞄,它的網(wǎng)頁播放器也被Mac widgets所支持,Unity分成Free與Pro版。22.2 Unity3D軟件特色綜合編輯:通過Unity簡單的用戶界面,易上手進(jìn)行界面編輯和編程工作。導(dǎo)入資源:支持所有要
11、緊的文件格式,并能和大部分的相關(guān)應(yīng)用程序協(xié)同工作。一鍵部署:讓玩家的作品在多平臺(tái)呈現(xiàn)。著色器:著色器系統(tǒng)整合了易用性、靈活性和高性能。天空盒:優(yōu)化軟件流暢度的一種專門好的方法。資源包:資源和邏輯從外部加載。音頻和視頻:實(shí)時(shí)三維混合音頻流、視頻流。光影:提供了具有柔和和陰影與烘焙的高度完善的光影渲染系統(tǒng)。文檔:為學(xué)習(xí)者提供逐步的指導(dǎo)、文檔和實(shí)例方案。2.3軟件總體設(shè)計(jì)1.攝像機(jī)初始鏡頭,處于天空俯視的感受 (單手指左右滑動(dòng)操縱旋轉(zhuǎn),雙手指打開合攏操縱方縮小)(上圖箭頭只是做參考,要緊操作依舊基于觸屏,這兩個(gè)功能用的專門多)2.拉近后,單擊可把視角轉(zhuǎn)移到黃色單個(gè)中心點(diǎn)進(jìn)行360度旋轉(zhuǎn)拉近拉遠(yuǎn)觀看(
12、單手指左右滑動(dòng)操縱旋轉(zhuǎn),雙手指打開合攏操縱方縮小)3.1 軟件操作講明3.1.1 場景操作講明在開始場景中為樓盤的外圍建筑的俯視圖。拖動(dòng)鼠標(biāo)或者手指拖動(dòng)屏幕可對樓盤中心進(jìn)行水平360以及上下0度到60度旋轉(zhuǎn),下方按鈕功能,分不為1)區(qū)域分布:為大樓的地理位置的一個(gè)視頻2)俯視:為大樓的中心進(jìn)行俯視觀看3)街景漫游:設(shè)置了4個(gè)街景點(diǎn),點(diǎn)擊街景漫游,會(huì)響應(yīng)的出現(xiàn)4個(gè)街景漫游 的按鈕,4個(gè)按鈕分不為不同的場景漫游地點(diǎn),4)車庫: 點(diǎn)擊車庫會(huì)跳轉(zhuǎn)場景,進(jìn)入車庫的場景5)室內(nèi):設(shè)置了4個(gè)室內(nèi)場景,兩個(gè)辦公室內(nèi),兩個(gè)家居室內(nèi),三個(gè)室內(nèi)為沒渲染的建模。一個(gè)室內(nèi)為渲染的簡模,點(diǎn)擊跳轉(zhuǎn)在室內(nèi)場景后,有四個(gè)按鈕一
13、個(gè)是毛胚房按鈕,一個(gè)是 簡裝,一個(gè)是漫游,一個(gè)是返回主程序6)主樓:點(diǎn)擊出樓會(huì)相應(yīng)的出現(xiàn)6個(gè)按鈕,分不為1,2,3,4,5,6點(diǎn)擊六個(gè)按鈕,圍繞的中心點(diǎn)這會(huì)變成相應(yīng)的主樓,7)退出按鈕:點(diǎn)擊按鈕,退出程序。3.2 軟件建模流程介紹3.2.1 建模和模型整理在3DMAX建模中標(biāo)準(zhǔn)單位設(shè)置為毫米,導(dǎo)入CAD原圖歸到一個(gè)圖層到坐標(biāo)原點(diǎn),依照CAD墻線制作墻體,依照設(shè)計(jì)方案硬裝模型,依照設(shè)計(jì)方案軟裝模型,建好模型后把所有的單體的Gimao(中心點(diǎn))整理到單體的中心,按程序不同的用處歸到不同的層中,如此即使美術(shù)修改,跟程序也沒什么大關(guān)系,頂視圖在用線沿墻內(nèi)勾出一個(gè)閉合的空間,原則是避開家具不能穿插墻體,
14、描繪出線轉(zhuǎn)角要給一個(gè)圓角命令,用在程序中漫游時(shí)不越過那個(gè)閉合的空間,盡量把該合并的材質(zhì)都合并,如此的話會(huì)節(jié)約內(nèi)存開銷,是軟件流暢度得以提升。漫游路徑模型例圖和程序不渲染路徑圖:3.2.2 貼圖方法及貼圖的制作材質(zhì)和貼圖不能出現(xiàn)中文名稱,純色的物體貼圖需弄32*32像素的純色貼圖,貼圖的尺寸要按照2的N次方像素設(shè)置,這些設(shè)置也是為了軟件運(yùn)行時(shí)減少內(nèi)存的開銷,提高流暢度。例圖:3.2.3 材質(zhì)給予,模型減面及合并指定Mental Ray渲染器,標(biāo)準(zhǔn)材質(zhì)(Standard)換成Mental Ray嵌套的材質(zhì),設(shè)置要緊的幾種材質(zhì)參數(shù),例如墻體,透明玻璃,燈罩,黃銅金屬類,相同材質(zhì)物體必須是同一材質(zhì)球,
15、材質(zhì)球命名不能是中文來寫。模型減面要適當(dāng),不能破壞模型原有的造型。不規(guī)則的模型要用ProOptimizer(批處理)命令??床坏降拿嬉?jiǎng)h除,但離地面比較高的面不能刪除,燈罩窗簾使用雙面模型,假如平面物體表面有黑斑時(shí),應(yīng)該取消那幾個(gè)面的光滑組,對曲面要統(tǒng)一曲面的光滑組,幸免烘培的時(shí)候貼圖出現(xiàn)黑色接縫。模型減面 后都應(yīng)該用一下Reset XForm(重置變換)和Turn to Poly(轉(zhuǎn)換為多邊形); 對模型結(jié)構(gòu)與貼圖坐標(biāo)不起作用的點(diǎn)和面要?jiǎng)h除以減少數(shù)據(jù)量,提高FPS幀速率。在保證場景效果的前提下減少場景的總風(fēng)光數(shù),曲線擠壓的時(shí)候要注意線的段數(shù),必要時(shí)候能夠使用折線形式來代替曲線,模型的網(wǎng)格分布
16、要合理,模型中平直部分能夠使用較少的分段數(shù),曲線部分為了表現(xiàn)曲線的轉(zhuǎn)折能夠適當(dāng)多分配一些,模型平面邊緣輪廓點(diǎn)分布盡量做到均勻,否則容易使模型破面或者產(chǎn)生其他問題。按空間里同材質(zhì)物體塌陷。不同材質(zhì)的掛畫能夠塌陷在一起,后期不需要調(diào)節(jié),對整個(gè)空間阻礙不是專門大的物體也能夠塌陷在一起(具體方法視戶型而定)。剪完面后整體效果幀速率要大于60;最后的模型分不打?yàn)閮山M,一組是靜態(tài)的程序調(diào)用不到的場景模型,一種是程序有調(diào)用用到的按鈕,動(dòng)畫等等有用的模型例圖:3.2.4 展UV及燈光測試手動(dòng)展UV的目的是要盡量使UV鋪滿整張貼圖以節(jié)約內(nèi)存消耗。模型沒減面前展的都不符合規(guī)范,必須在減面后展。展完UV模型后面加上
17、貼圖像素的大小。指定Mental Ray渲染器,檢查Gamma值,選擇曝光方式,窗戶位置打射面燈模擬天光。燈槽位置用圓柱燈模擬燈帶,臺(tái)燈位置用球燈模擬,光域網(wǎng)模擬室內(nèi)筒燈,調(diào)節(jié)燈光強(qiáng)度和顏色,尺寸,陰影方式和陰影細(xì)分。同一空間的燈應(yīng)該關(guān)聯(lián)復(fù)制,調(diào)節(jié)渲染器常用參數(shù)。做渲染處理時(shí)盡量模塊化渲染,一般的計(jì)算機(jī)硬件對渲染處理都專門慢。33.2.5 烘培以及烘培貼圖在PS中的處理按層給場景中要烘培的物體添加CompleteMap和LiaghtingMap,貼圖格式存為.exr。設(shè)置好存儲(chǔ)位置,貼圖格式,貼圖尺寸,烘培貼圖.exr格式的要在Photoshop中批處理一下Gamera值。3.2.6 Unit
18、y3D中場景模型的后期處理在模型導(dǎo)入unity后,還需要進(jìn)一步的材質(zhì)和燈光的處理。在那個(gè)地點(diǎn)我采納了一些輸出的材質(zhì)插件名稱Marmoset著色器,在主場景中用到的著色器要緊是有一自定義的Simple reflection(簡單反射shader):那個(gè)著色器要緊是用于大樓的整體玻璃效果,認(rèn)真看的話,會(huì)看到玻璃反射過來的天空云朵和光線,簡單反射著色器的簡單原理為:在一個(gè)鏡像攝像機(jī)內(nèi)投影的矩陣中,在我們的操作軟件時(shí)首先會(huì)將鏡子那個(gè)對象的頂點(diǎn)轉(zhuǎn)換為世界坐標(biāo),然后在使用鏡像攝像機(jī)空間內(nèi)的投影矩陣,最終頂點(diǎn)在屏幕上的投影會(huì)被用來作為UV貼圖坐標(biāo)來采樣鏡像相機(jī)渲染出啊來的材質(zhì)貼圖中(RenderTextur
19、e)。4這是一般著色器和簡單反射著色器的區(qū)不: 二半透明凹凸高光著色器:此著色器要緊用于家具玻璃的呈現(xiàn)方式。它的簡單原理為:光在半透明物體中沿著各個(gè)方向進(jìn)行反射和折射,因此光的方向性就消逝了,但光在物體內(nèi)部的所能前進(jìn)的深度和物體的密度,物體到光源的距離緊密相關(guān)的,因此我們用shader提供的兩個(gè)變量一個(gè)是操縱物體到光源距離的偏差,一個(gè)是用來操縱光在無題中的衰減速度,事實(shí)上也確實(shí)是對對象密度以及透明度的衰減操縱。4一般著色器和半透明高光漫反射著色器的區(qū)不如圖:用到的著色器還有一些頂點(diǎn)著色,視差漫反射著色等等。3.3 軟件功能實(shí)現(xiàn)腳本介紹3.3.1 全局通用腳本的邏輯在本系統(tǒng)的開發(fā)過程中,一些聲音
20、的播放,對象的顯示與隱藏,對一些通用路基進(jìn)行了封裝使用,在寫通用方法開發(fā)中,遇到了一些問題。 遇到的問題和解決方法是:當(dāng)鼠標(biāo)懸浮物體時(shí),寫腳本使物體變紅,移開恢復(fù)原來的顏色,然而,我是一個(gè)開發(fā)者,不是使用者,我在操作時(shí),就會(huì)按照我的流程來,使用者不明白如何操作就會(huì)亂點(diǎn),最大的問題確實(shí)是:假如鼠標(biāo)懸停物體變紅,點(diǎn)擊拖著不放再移動(dòng)到不與物體碰撞的地點(diǎn),再松開鼠標(biāo),這時(shí)物體依舊是紅色的,并沒有變回原來的顏色,我起初使用的是NGUI插件的OnHover()懸停方法,因?yàn)橛蠦ug,就放棄了那個(gè)方法,使用unity OnMouseOver()方法和OnMouseUp()方法。 當(dāng)鼠標(biāo)彈起方法,測試差不多上
21、沒有任何問題的。然而,假如NGUI插件結(jié)合使用的話,假如我們使用NGUI來做一些UI按鈕邏輯的話,就會(huì)在攝像機(jī)上添加一個(gè)UICamera的組件,按鈕的原理是用的射線原理:即從攝像機(jī)發(fā)射出來一條射線,假如碰到碰撞盒,則會(huì)反饋回來一個(gè)消息事件,unity自帶的這兩個(gè)方法難道就失效了,后來網(wǎng)上查詢資料和自己的理解,發(fā)覺NGUI也封裝好了一個(gè)叫做OnPress()按下button響應(yīng)的方法。在那個(gè)方法里添加一句使物體顏色RGBA值變回原來的顏色,如此的話,就解決了問題,然而依舊留下的問題確實(shí)是NGUI中封裝好的UICamera腳本與unity系統(tǒng)自帶的鼠標(biāo)事件沖突的問題。解決問題后的圖例:3.3.2
22、UI功能邏輯在UI功能開發(fā)那個(gè)模塊中,差不多上要考慮一些,點(diǎn)擊那個(gè)出現(xiàn),點(diǎn)擊按鈕實(shí)現(xiàn)什么功能,例如:點(diǎn)擊室內(nèi)按鈕,會(huì)相應(yīng)的出現(xiàn)室內(nèi)的4個(gè)按鈕,點(diǎn)擊主樓按鈕,會(huì)相應(yīng)的會(huì)出現(xiàn)6個(gè)主樓的按鈕,然而,不能同時(shí)出現(xiàn),那么就得對這些做一個(gè)推斷了,假如室內(nèi)按鈕沒出現(xiàn)時(shí),點(diǎn)擊主樓,那么出現(xiàn)主樓按鈕,假如室內(nèi)按鈕出現(xiàn)后,再次點(diǎn)擊主樓按鈕,那么室內(nèi)按鈕隱藏,主樓按鈕出現(xiàn),相應(yīng)的其他一些類似的按鈕功能也相同。在UI邏輯開發(fā)中遇到了一個(gè)問題確實(shí)是和3D模型有關(guān)。當(dāng)我點(diǎn)擊6個(gè)樓時(shí)會(huì)有一些相應(yīng)的反映,然而大樓的模型是一些組件拼起來的,并不是一個(gè)物體,而是專門多個(gè)物體,然而按鈕就一個(gè),因此在那個(gè)地點(diǎn)就做了一個(gè)處理:建模的時(shí)
23、候建兩個(gè)模型,一個(gè)超簡模,一個(gè)模型,超簡模用作按鈕使用,然而不做渲染,例圖:3.3.3 手指觸控邏輯的深入研究在開發(fā)過程中,手指觸控邏輯是最要緊的一個(gè)環(huán)節(jié)開發(fā),也是本系統(tǒng)開發(fā)的一個(gè)最難得點(diǎn)。需求是手指觸控可圍繞中心點(diǎn)進(jìn)行360度旋轉(zhuǎn)和上下旋轉(zhuǎn)。由因此拖拽進(jìn)行旋轉(zhuǎn),因此確實(shí)是用插值來改變相機(jī)的位置,在圍繞中心旋轉(zhuǎn)中,差值的使用方法用兩種,一種是歐拉角,另外一種是四元數(shù),然而使用歐拉角旋轉(zhuǎn)時(shí),可能會(huì)碰到萬向鎖的Bug,因此就采納了四元數(shù)進(jìn)行對圍繞中心的旋轉(zhuǎn)。 手指觸控原理:在手指觸控中獵取手指觸點(diǎn)屏幕坐標(biāo)的點(diǎn)A(X,Y)那個(gè)點(diǎn)是在手指只要觸控屏幕就會(huì)實(shí)時(shí)檢測更新的,再定義一個(gè)點(diǎn)B(X.Y).加一個(gè)
24、推斷Bool初始為真,假如手指觸控到屏幕就讓B=A,然后B=A不執(zhí)行,推斷Bool為假,直到手指脫離屏幕才能為真, 定義一個(gè)Vector3 C=(A.x-B.x,X.y-B.y,0)然后再次讓B=A。那個(gè)地點(diǎn)的大概意思確實(shí)是:C就等于手指現(xiàn)在的坐標(biāo)減去上一刻的坐標(biāo),要緊目的確實(shí)是操縱旋轉(zhuǎn)的速度。我們再定義兩個(gè)值RX和RYRX=Mathf.Clamp(RX+ Mathf.Clamp(-x *調(diào)節(jié)速度, -45, 45), minY,maxY);RY=Mathf.Clamp(RY+ Mathf.Clamp(-x *調(diào)節(jié)速度, -45, 45), minX,maxX);Quaternion QA=
25、EulerToQuaternion(RY,RX,0);攝像機(jī)的角度= Quaternion.Slerp(攝像機(jī)現(xiàn)在的角度,QA,轉(zhuǎn)動(dòng)速度)攝像機(jī)的位置=攝像機(jī)角度*new Vector3(0,水平高度,-離中心點(diǎn)距離)離中心點(diǎn)距離=縮放滑動(dòng)值(觸摸縮放*縮放速度);縮放滑動(dòng)值=Mathf.Lerp(離中心點(diǎn)距離,Mathf.Clamp(這一刻的距離+=縮放值*縮放速度,最小值 ,最大值), 速度)) 縮放值的推斷原理:假如是兩點(diǎn)觸控同時(shí)第一個(gè)點(diǎn)和第二個(gè)點(diǎn)都移動(dòng)才能執(zhí)行以下推斷,獵取兩個(gè)點(diǎn)的屏幕坐標(biāo)A(X,Y)和B(X,Y),過一瞬間,獵取當(dāng)前的屏幕坐標(biāo)C(X,Y)和D(X,Y)假如C-A的絕對
26、值同時(shí)D-B的絕對值都大于0那么就進(jìn)行放大返回float縮放值。 否則就縮小,返回float縮小值。手勢推斷關(guān)鍵性數(shù)學(xué)代碼如下:Enlarge isEnlarge(Vector2 oP1, Vector2 oP2, Vector2 nP1, Vector2 nP2) /函數(shù)傳入上一次觸摸兩點(diǎn)的位置與本次觸摸兩點(diǎn)的位置計(jì)算出用戶的手勢 var leng1 = Mathf.Sqrt(oP1.x - oP2.x) * (oP1.x - oP2.x) + (oP1.y - oP2.y) * (oP1.y - oP2.y); var leng2 = Mathf.Sqrt(nP1.x - nP2.x) *
27、 (nP1.x - nP2.x) + (nP1.y - nP2.y) * (nP1.y - nP2.y); if (Mathf.Abs(leng1 - leng2) 10) return Enlarge.None;outx = leng1;outy = leng2; if (leng1 leng2) return Enlarge.Small;/ 縮小手勢 else return Enlarge.Large; / 放大手勢 依照歐拉角到四元數(shù)的轉(zhuǎn)換的數(shù)學(xué)公式寫出轉(zhuǎn)換的方法。5 / 歐拉角到四元數(shù)的轉(zhuǎn)換的代碼: public Quaternion EulerToQuaternion(float _
28、x, float _y, float _z) float x = Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad) + Mathf.Sin(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z / 2 * Mathf.Deg2Rad); float y = Mathf.Sin(_y / 2 * Mathf.Deg2Rad) * Mathf.
29、Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad) - Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z / 2 * Mathf.Deg2Rad); float z = Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z / 2 * Mathf.Deg2Rad) - Mathf.Sin
30、(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad); float w = Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad) + Mathf.Sin(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z
31、 / 2 * Mathf.Deg2Rad); return new Quaternion(x, y, z, w);3.3.4 播放視頻的不同方法在視頻播放問題上。我遇到了一些難題,由于在IOS和Android移動(dòng)端不支持unity自帶的Movtexture播放模式,因此通過網(wǎng)上查詢后,解決了這一方法, 先寫一個(gè)宏定義,假如是電腦端,那么就執(zhí)行電腦端播放視頻的方法,假如是移動(dòng)端,就執(zhí)行移動(dòng)端播放視頻的方法。電腦端比較簡單,那個(gè)地點(diǎn)要緊做移動(dòng)設(shè)備中播放視頻的方法。,利用IOS和安卓的播放視頻的控件來對視頻進(jìn)行播放。那個(gè)地點(diǎn)用到的是Handheld.PlayFullScreenMovie播放方法具體
32、的4種方法代碼如下:/視頻播放時(shí)觸摸屏幕視頻關(guān)閉Handheld.PlayFullScreenMovie(“視頻名稱.格式”,背景顏色,F(xiàn)ullScreenMovieControlMode.CancelOnInput);/視頻播放時(shí)彈出IOS高級控件,能夠操縱視頻暫停播放全屏等等Handheld.PlayFullScreenMovie(“視頻名稱.格式”,背景顏色,F(xiàn)ullScreenMovieControlMode.Full);/視頻播放時(shí)無法停止,當(dāng)播放萬一此后自動(dòng)關(guān)閉Handheld.PlayFullScreenMovie(“視頻名稱.格式”,背景顏色,F(xiàn)ullScreenMovieCo
33、ntrolMode.Hidden);/視頻播放時(shí)彈出IOS高級控件,能夠操縱視頻播放進(jìn)度;Handheld.PlayFullScreenMovie(“視頻名稱.格式”,背景顏色,F(xiàn)ullScreenMovieControlMode.Minimal);關(guān)鍵注意點(diǎn):一定要將播放的視頻文件放在unity的Assets/SteeamingAssets/路徑下,否則是無法播放的,而且這些在電腦端測試是沒有任何效果的,只有在移動(dòng)端測試才行。63.3.5 公布打包PC端以及PC觸控端測試測試性能并修改參數(shù)打包電腦端程序后,一般的電腦并不是點(diǎn)觸屏電腦,寫了一些鼠標(biāo)操縱旋轉(zhuǎn)縮放的一些代碼來測試,然而,放在觸控屏
34、上測試,滑動(dòng)的速度和縮放的速度太慢,估罷了幾次,調(diào)大了10倍才差不多。3.3.6 Xcode公布IOS打包Ipad測試性能并修改參數(shù)工程導(dǎo)進(jìn)mac電腦里后,首先確實(shí)是調(diào)整公布平臺(tái),點(diǎn)擊Swtich platfrom按鈕。此過程慢,然后點(diǎn)擊Bulid。例圖:在公布ios的ipa文件時(shí),通過網(wǎng)上查詢資料,公布成功。要緊的流程如下:unity公布成成功后,打開公布文件夾,打開unity-iPhone.xcodeproject文件,這時(shí)候會(huì)默認(rèn)Xcode打開, 假如IOS移動(dòng)設(shè)備越獄了,連接移動(dòng)端,點(diǎn)擊運(yùn)行,能夠直接公布到移動(dòng)端里,假如沒有,那么需要用99美元蘋果官網(wǎng)購買一個(gè)開發(fā)者賬戶然后在Team欄
35、輸入你的帳號(hào)密碼,然后點(diǎn)擊運(yùn)行,如此你的移動(dòng)設(shè)備上就直接有運(yùn)行的軟件了,然而要的是一個(gè).ipa文件(類似于安卓的.apk)。點(diǎn)擊Xcode編輯器上的Product按鈕點(diǎn)擊Archive。此過程需要幾分鐘,成功后會(huì)自動(dòng)彈出一個(gè)Organizer-Archives的窗口。點(diǎn)擊公布的文件點(diǎn)擊右鍵,點(diǎn)擊Show in Finder,會(huì)彈出一個(gè)有一個(gè)文件的窗口。點(diǎn)擊文件右鍵,單擊顯示包內(nèi)容,會(huì)彈出一個(gè)有三個(gè)文件夾的窗口。點(diǎn)擊Products/Applications文件路徑。里面發(fā)覺了一個(gè).app的文件,要緊流程圖如下:打開iTunes。把.app文件拖到iTunes里,然后把iTunes文件里生成的文件拖拽到桌面上確實(shí)是想要的.ipa文件。73.4 軟件BUG檢查在軟件運(yùn)行測試中,出現(xiàn)了以下BUG:1)在外部漫游時(shí)有時(shí)會(huì)穿墻。1)配置不行的機(jī)器專門卡。3)不行看。4)漫游時(shí)碰到物體。松開按鈕,會(huì)產(chǎn)生力的反作用。5)電腦端的專門多效果移動(dòng)端顯示不出來,特不是陰影效果。解決方法:1)把漫游移動(dòng)速度調(diào)慢,就可不能有穿墻的效果。2)優(yōu)化模型,未解決。3)自己不是專業(yè)美工,沒解決。4)取消重力。5)做Mental Ray渲染,把陰影什么渲染到貼圖上解決一部分問題。4 總結(jié)本軟件是利用了Unity3D引擎的多平臺(tái)公布的便利。向各個(gè)平臺(tái)展現(xiàn)出了一個(gè)可視化的虛擬樓盤。虛擬現(xiàn)實(shí)的最大優(yōu)點(diǎn)確實(shí)是充分調(diào)動(dòng)客戶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公共交通車輛運(yùn)營管理合同3篇
- 2025年度柴油市場分析與預(yù)測服務(wù)合同范本4篇
- 專業(yè)設(shè)備銷售協(xié)議模板集(2024版)版
- 2025年廠區(qū)綠化生態(tài)教育推廣與培訓(xùn)服務(wù)協(xié)議4篇
- 2024年起重機(jī)研發(fā)與購銷合作項(xiàng)目合同范本3篇
- 二零二四家居建材店員工勞動(dòng)合同模板3篇
- 2025年度智能機(jī)器人技術(shù)研發(fā)合作協(xié)議4篇
- 2024版企業(yè)技術(shù)改造借款的合同范本
- 二零二五版醫(yī)療設(shè)備采購與租賃合同范本3篇
- 2024年04月吉林銀行總行投資銀行部2024年社會(huì)招考1名負(fù)責(zé)人筆試歷年參考題庫附帶答案詳解
- GB/T 6913-2008鍋爐用水和冷卻水分析方法磷酸鹽的測定
- GB/T 18717.2-2002用于機(jī)械安全的人類工效學(xué)設(shè)計(jì)第2部分:人體局部進(jìn)入機(jī)械的開口尺寸確定原則
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
- 中國文化概論(第三版)全套課件
- 117-鋼結(jié)構(gòu)工程質(zhì)量常見問題與管控措施
- SHS5230三星指紋鎖中文說明書
- 諾和關(guān)懷俱樂部對外介紹
- 保定市縣級地圖PPT可編輯矢量行政區(qū)劃(河北省)
- 新蘇教版科學(xué)六年級下冊全冊教案(含反思)
- 供方注冊指南-ZTE
- 真心英雄合唱歌詞
評論
0/150
提交評論