版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
頁眉內(nèi)容頁眉內(nèi)容頁眉內(nèi)容目錄TOC\o"1-2"\h\z\u摘要 IAbstract II一、 緒論 1(一) 研究背景和研究意義 1(二) 國內(nèi)外研究現(xiàn)狀 1(三) 論文組織結(jié)構(gòu) 2二、 3D游戲技術(shù)的知識系統(tǒng) 2(一) 3D圖形庫 2(二) 物理引擎 5(三) Unity3D 8三、 車輛駕駛游戲的設(shè)計 11(一) 游戲創(chuàng)意 11(二) 游戲框架結(jié)構(gòu)設(shè)計 13(三) 游戲?qū)哟谓Y(jié)構(gòu)設(shè)計 14四、 車輛駕駛游戲的實現(xiàn) 15(一) 場景渲染實現(xiàn) 15(二) 場景物理仿真實現(xiàn) 21(三) 汽車動力學(xué)模擬 22(四) 用戶圖形界面實現(xiàn) 24(五) 網(wǎng)絡(luò)聯(lián)機(jī)模塊實現(xiàn) 27五、 游戲展示與性能分析 28(一) 游戲展示 28(二) 性能分析 30六、 項目總結(jié) 32(一) 總結(jié) 32(二) 下一步工作的展望 33參考文獻(xiàn) 34摘要隨著計算機(jī)技術(shù)的發(fā)展,電子游戲的形式越來越豐富,用戶對于電子游戲的娛樂性需求也越來越高,追求更加真實的感官體驗成為電子游戲的一條發(fā)展趨勢。作為虛擬現(xiàn)實領(lǐng)域的一項的綜合應(yīng)用,3D游戲已經(jīng)在電腦、手機(jī)、機(jī)頂盒等多平臺得到了普及,相對于傳統(tǒng)的2D游戲,3D游戲讓用戶感覺更融入,更加享受,但所依賴的計算機(jī)技術(shù)也更加復(fù)雜,計算機(jī)圖形學(xué)、物理仿真等都成為3D游戲開發(fā)所需要的重點研究方向。我國在電子游戲領(lǐng)域的發(fā)展與領(lǐng)先國家還具有一定的差距,為了振興本國電子游戲行業(yè),對這一項綜合應(yīng)用所涉及的技術(shù)進(jìn)行整體的梳理是完全有必要的。論文按照從設(shè)計到實現(xiàn),從理論到應(yīng)用。首先介紹了3D游戲的一般技術(shù)框架,之后圍繞一款基于Unity3D的小型的汽車駕駛游戲,使用Unity3D支持多個平臺,可方便引入各方面插件。在游戲設(shè)計和實現(xiàn)階段,先簡單介紹了游戲的創(chuàng)意,接著設(shè)計了整個游戲的的整體結(jié)構(gòu),并將游戲系統(tǒng)主要分為圖形渲染、物理仿真、網(wǎng)絡(luò)同步等模塊,圖形渲染使用Unity3D中OpenGL插件,使得游戲可以運(yùn)行到手機(jī)平臺,為了更精確、更快速處理汽車的物理仿真,使用了PhysX來對車身及場景進(jìn)行物理設(shè)計,著重涉及到碰撞檢測、車身剛體及輪胎的懸掛系統(tǒng)的概念及算法,并且增加界面設(shè)計及網(wǎng)絡(luò)模塊使得用戶增加互動性。論文的最后對游戲做了一定的分析,在執(zhí)行效率及可玩性做出了改進(jìn)展望。整個游戲系統(tǒng)各模塊之間接口靈活且耦合性低,且運(yùn)行效率高,雖然屬于小型游戲,但涉及的技術(shù)點較為全面,可以為同類問題提供參考。關(guān)鍵字:Unity3D,游戲,圖形引擎,物理引擎,PhysX,汽車駕駛AbstractWiththedevelopmentoftheelectronicscience,formsofelectronicgamesarebecomingricherandricher,meanwhilethatusersneedtomorerealsensejudgmenthasbeenanimportantprogresstrend.Asanapplicationofthevirtualreality,3Dgamesisavailableonallthemajorcomputer,mobileplatforms,set-topboxesandsoon.3Dgamesmakeuserseasierimmerseinenjoyingitcomparedwith2Dgames,butrequiremorecomplextechnique,sothatComputerGraphicandColliderdetectionhavebeenkeyresearchfields.Theindustrylevelof3DgamesfallsbehindinChinaatpresent,itisameaningworktogothroughthetechnologyofthecomprehensiveapplication.Thethesisisorderfromtheorytoapplication.Firstlythispaperintroducesthebaseframeworkof3Dgames,andthendevelopavehiclegamebyUnity3D,whichsupportsmultipleplatformsandeasiertodevelopbytheplugin.Inthespecificgame,introducetheideaofthisgameanddiscusstheoveralldesignoftheintegralstructure.Thisgameisbrokendownintomodulessuchasgraphicrending,physicalsimulationandnetwork.GraphicrenderingusesOpenGLplugininUnity3D,whichmakesgameruninmobilephone.PhysicalsimulationdependsonPhysXwhichcanobtainmoreaccurateresultstodesigntherigidbodyofthecar,thesuspensionofthewheelsandthescene.InordertoaddinteractivityweaddnetworkandUImodule.Intheend,thispaperanalysisthisgametoputforwardthenextimprovement.Thisvehiclegameismini,butownssomeadvantagessuchasflexiblemoduleinterfaces,lowcouplingandfastexecuting.Mostimportantlythispaperreferstomostaspectsofa3Dgameandprovideareferencefordeveloperswhohasasimilarrequirement.Keywords:Unity3D,game,graphicengine,physicalengine,PhysX,automobilism緒論研究背景和研究意義這幾年,中國經(jīng)濟(jì)以8%左右的速度持續(xù)平穩(wěn)的增長,而在剛剛過去的2012年中國游戲市場實際銷售收入602.8億元,同比增長率為35.1%,首次突破600億規(guī)模[1]。游戲產(chǎn)業(yè)己經(jīng)成為經(jīng)濟(jì)市場中增長速度最快的熱點,是眾所關(guān)注的焦點。游戲是文化創(chuàng)意產(chǎn)業(yè)里的一部分,創(chuàng)意經(jīng)濟(jì)是知識經(jīng)濟(jì)的核心內(nèi)容,更是其經(jīng)濟(jì)的重要表現(xiàn)形式,沒有創(chuàng)意就沒有新經(jīng)濟(jì)。游戲設(shè)計是文化藝術(shù)創(chuàng)意和商品生產(chǎn)的結(jié)合,游戲產(chǎn)業(yè)的發(fā)展在中國的經(jīng)濟(jì)發(fā)展中具有十分重要的意義[2]:1.有利于保護(hù)民族的文化傳統(tǒng)和價值觀,抵制文化入侵;2.推動創(chuàng)意產(chǎn)業(yè)的快速發(fā)展,提升我國經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展水平;3.提供健康快樂的大眾娛樂方式,提升消費者的休閑體驗感受。游戲的發(fā)展從表現(xiàn)方法上經(jīng)歷了2D游戲和3D游戲兩個階段。游戲設(shè)計,特別是3D游戲開發(fā)綜合運(yùn)用了計算機(jī)圖形學(xué)、物理仿真和網(wǎng)絡(luò)通訊等技術(shù),并且移動平臺技術(shù)在這幾年得到迅猛發(fā)展,輕量級、微創(chuàng)新、時間碎片化一直是移動游戲的發(fā)展趨勢,如《憤怒的小鳥》、《頑皮鱷魚愛洗澡》、《神廟逃亡》的用戶數(shù)都已經(jīng)過億。論文通過一個簡單的“碰碰車”創(chuàng)意予以實現(xiàn),涵蓋了3D游戲涉及到的一些基本技術(shù),能深入理解這些領(lǐng)域的底層技術(shù)并熟練掌握成熟的引擎使用,對于將來開發(fā)具有自主知識產(chǎn)權(quán)的游戲提供了參考。國內(nèi)外研究現(xiàn)狀國外的3D游戲起步在90年代初,美國的卡馬克的《重返德軍總部3D》是第一部3D第一人稱射擊游戲,由其開發(fā)的Doom引擎也成為最早3D游戲引擎。國內(nèi)首款自主研發(fā)的3D游戲始于2003年,到目前為止,國內(nèi)在3D游戲已經(jīng)有了很多的研究,但由于3D游戲開發(fā)的復(fù)雜性及經(jīng)濟(jì)效益的考慮,國內(nèi)只有屈指可數(shù)的互聯(lián)網(wǎng)公司擁有自主研發(fā)的3D游戲引擎,中小型公司還是使用國外較為成熟的游戲引擎和工具,如虛幻,Unity3D,寒霜。雖然近年來國內(nèi)涌現(xiàn)一些優(yōu)秀的3D網(wǎng)游諸如《劍俠情緣3》、《九陰真經(jīng)》,但一直無法像產(chǎn)出世界級的3D游戲大作,大部分游戲公司還是以代理國外優(yōu)秀產(chǎn)品為主,導(dǎo)致資金外流及本土文化缺失。隨著移動硬件設(shè)備的日益強(qiáng)大,移動平臺上的游戲也出現(xiàn)了驚人的增長,3D互動娛樂在手機(jī)領(lǐng)域的應(yīng)用也逐漸增加。而移動領(lǐng)域存在諸多的操作系統(tǒng),常用的有Android、WindowsMobile、iOS等,而在各個平臺上的移植和實現(xiàn)對于開發(fā)商來說是不經(jīng)濟(jì)的,而目前國外優(yōu)秀的成熟引擎已經(jīng)成功解決這類需求,最為突出的要數(shù)Unity3D引擎,Unity3D中使用虛擬機(jī)技術(shù)使游戲編譯結(jié)果獨立于平臺執(zhí)行。國內(nèi)對于跨平臺引擎技術(shù)的研究還處于起步階段,但熟練掌握和理解這些引擎的使用依然具有一定意義。論文組織結(jié)構(gòu)論文按照從設(shè)計到實現(xiàn),從理論到應(yīng)用,主要圍繞一款基于Unity3D的小型的汽車駕駛游戲,對一些3D游戲設(shè)計的技術(shù)進(jìn)行相關(guān)的研究,并予以設(shè)計實現(xiàn)。本文共分為六章,各章節(jié)安排如下:第一部分:緒論,闡述了論文的研究背景和意義、國內(nèi)外研究現(xiàn)狀以及本文主要研究內(nèi)容;第二部分:介紹了3D游戲開發(fā)的一般技術(shù)框架,及相關(guān)的第三方引擎,主要有圖形渲染庫、物理引擎及Unity3D的概述;第三部分:汽車駕駛游戲的創(chuàng)意以及游戲系統(tǒng)的整體設(shè)計,并根據(jù)Unity3D框架規(guī)范設(shè)計了一種MVC層次結(jié)構(gòu);第四部分:討論游戲中各模塊的技術(shù)研究和實現(xiàn)過程,主要的核心模塊是場景渲染和物理仿真;第五部分:展示當(dāng)前的游戲并對效率、玩法等方面做一定分析;第六部分:結(jié)論,對該設(shè)計進(jìn)行總結(jié)并指出其中的不足,提出下一步展望。3D游戲技術(shù)的知識系統(tǒng)3D圖形庫3D圖形庫簡介3D圖形庫被定義為顯卡與應(yīng)用程序直接的接口。編程人員只要調(diào)用3D圖形庫中的API(ApplicationProgrammingInterface)函數(shù),從而與硬件的驅(qū)動程序溝通,啟動3D芯片內(nèi)強(qiáng)大的3D圖形處理功能,制作具有3D圖形效果的軟件。3D圖形庫的執(zhí)行具有非??焖俚奶攸c,并且具有高度的可移植性,其中的API函數(shù)定義為獨立于任何程序設(shè)計語言的一組規(guī)范,在特定語言中的實現(xiàn)描述由國際標(biāo)準(zhǔn)化組織來制定。嚴(yán)格按照計算機(jī)圖形學(xué)原理設(shè)計而成,符合光學(xué)和視覺原理,編程人員只要用這些API函數(shù)定義點、線、面的三維特征,如位置坐標(biāo)、頂點顏色、法向向量、紋理坐標(biāo)等就可以創(chuàng)建極其逼真的3D圖像。許多三維演示系統(tǒng)都用3D圖形庫作為三維圖形生成和控制的編程接口。目前主要應(yīng)用的3D函數(shù)庫有DirectX和OpenGL。DirectX:微軟公司專為PC游戲開發(fā)的API,與Windows操作系統(tǒng)兼容性好,可繞過圖形顯示接口(GDI)直接進(jìn)行支持該API的各種硬件的底層操作,大大提高了游戲的運(yùn)行速度,而且目前基本上是免費使用的。由于要考慮與各方面的兼容性,DirectX用起來比較麻煩、在執(zhí)行效率上也未見得最優(yōu)。OpenGL:(開放式圖形接口)由SiliconGraphics公司開發(fā),能夠在Windows95、WindowsNT、Macos、Beos、OS/2、以及Unix上應(yīng)用的API。由于OpenGL起步較早,一直用于高檔圖形工作站,其3D圖形功能很強(qiáng),超過DirectX,能最大限度地發(fā)揮3D芯片的巨大潛力。在Windows中已經(jīng)全面支持DirectX和OpenGL。在OpenGL的1.2版中還增加了對3DNow!標(biāo)準(zhǔn)的支持。3D圖形庫的渲染管線絕大多數(shù)3D圖形庫實現(xiàn)都有相似操作順序,一系列相關(guān)的處理階段叫做3D圖形的渲染管線,如圖2-1顯示了這些順序,它是3D圖形庫處理數(shù)據(jù)的方法[3]。圖2-13D圖形庫渲染管線下面詳細(xì)介紹其中幾個比較重要的階段:基于頂點的操作與基本裝配:這個過程包括本地空間-世界空間-視圖空間-背面揀選,主要是根據(jù)編程人員設(shè)置的攝像機(jī)位置、視錐屬性和頂點索引對頂點數(shù)據(jù)進(jìn)行一系列的數(shù)學(xué)運(yùn)算,使3D圖形的形狀及位置得以正確顯示。像素操作:該過程主要根據(jù)編程人員傳入顯卡的紋理及頂點的紋理坐標(biāo)以及光照信息進(jìn)行顏色計算、混合,并對線、面采用線性插值、二次線性插值等算法最終進(jìn)行出像素的顏色。這個過程的計算一般由顯卡固定管線的計算公式完成,如想得到更真實、更多樣的效果,可采用可編程管線技術(shù)實現(xiàn)。3D程序基本工作流程前面提到了調(diào)用3D圖形庫中的API函數(shù)來設(shè)計3D應(yīng)用程序,現(xiàn)在更為詳細(xì)的介紹這樣的應(yīng)用程序的一般工作流程,如圖2-2所示:圖2-23D圖形庫渲染管線在程序主入口main函數(shù)中,首先調(diào)用ApplicationInitial函數(shù)進(jìn)3D圖形庫的一些初始化工作:如通知顯卡存儲頂點、顏色、燈光、紋理等信息,接下來進(jìn)入主循環(huán)不斷調(diào)用ApplicationUpdate函數(shù),ApplicationUpdate調(diào)用每一個渲染物體的ObjectUpdate函數(shù),更新其在顯存中的信息,并通知顯存進(jìn)行一次渲染管線流動,這樣新的一幀3D圖形就被渲染出來并產(chǎn)生動畫。最后在應(yīng)用程序結(jié)束時調(diào)用ApplicationDestory來進(jìn)行清理工作。當(dāng)然,復(fù)雜的3D應(yīng)用框架還會利用多線程技術(shù)來處理邏輯運(yùn)算和事件回調(diào)等內(nèi)容。物理引擎物理引擎簡介在游戲這項綜合應(yīng)用中中,除了華麗的畫面渲染外,作為表現(xiàn)虛擬世界系統(tǒng)內(nèi)在物理規(guī)律的計算是必不可少的。當(dāng)被模擬的剛體的運(yùn)動比較簡單,我們可以在一定程度上通過編程或編寫腳本來實現(xiàn),如簡單的加速和減速牛頓物理運(yùn)動。但當(dāng)模擬比較復(fù)雜的物體的碰撞、滾動、滑動或者彈跳的時候,通過編寫底層算法會造成工程延誤,這顯然不符合軟件工程的思想。成熟的物理引擎能夠允許更復(fù)雜的物理模擬,像球形關(guān)節(jié)、輪子、氣缸或者鉸鏈,有些也支持非剛性體的物理屬性,比如流體和布料。物理引擎接受的輸入是由外界調(diào)用模塊傳遞過來的場景信息以及場景中物體的位置信息。根據(jù)調(diào)用模塊的不同,可能輸出三種計算結(jié)果:場景與物體以及物體之間是否發(fā)生碰撞、碰撞發(fā)生的具體位置以及發(fā)生碰撞后物體的具體位置,并將計算結(jié)果傳送給調(diào)用模塊。如圖2-3所示:圖2-3物理引擎功能示意圖物理引擎基本架構(gòu)[4]物理引擎一般分為兩個重要部分,即碰撞檢測和物理學(xué)世界。如圖2-4所示:圖2-4物理引擎基本架構(gòu)碰撞檢測模塊是物理引擎的核心模塊,建立在物理學(xué)世界的基礎(chǔ)上的[5]。其由初步碰撞檢測、精確碰撞檢測和精確求交三個基本模塊組成,各模塊的執(zhí)行順序如圖2-5所示:圖2-5碰撞檢測模塊流程圖在初始化階段,碰撞檢測模塊給虛擬世界每個物體建立包圍盒,比較常用的包圍盒算法有AABB(Axis-alignedboundingbox)、包圍球、膠囊體等。逐步求精階段將整個虛擬世界進(jìn)行空間劃分,主要用到數(shù)據(jù)結(jié)構(gòu)有八叉樹、k-d樹和BSP樹等,通過自頂向下的層次結(jié)構(gòu)不斷判斷物體是否可能發(fā)生碰撞。最后再精確求交模塊中使用凸體算法和射線檢測算法得到精確的碰撞信息[6]。物理學(xué)世界模塊,是現(xiàn)實世界的抽象模型。物理學(xué)世界包含兩個部分,一個是剛體物理學(xué)世界,一個是柔體物理學(xué)世界。在力的作用下,體積和形狀都不發(fā)生改變的物體稱作剛體。剛體按照其運(yùn)動特征可以分為平動、定軸轉(zhuǎn)動、平面運(yùn)動、定點運(yùn)動和一般運(yùn)動等形式。在一般情況下,運(yùn)動剛體上各點的軌跡、速度和加速度是各不相同的,但彼此之間存在著一定的關(guān)系。體積和形狀在力的作用下能夠發(fā)生變化的物體稱作柔體,如流體、布料等。因此,物理學(xué)世界的模塊結(jié)構(gòu)如圖2-6所示。圖2-6物理學(xué)世界模塊結(jié)構(gòu)圖Havok和PhysX的比較物理引擎中需要大量的計算,并且不同物理引擎針對特定顯卡有3D加速功能,因此,開發(fā)3D游戲前選擇一款合適的物理引擎是及其重要的,否則會極大影響游戲的性能。目前在游戲市場占重要地位的有Intel的Havok和Nvidia的PhysX。Havok,全稱為HavokGameDynamicsSDK,譯作Havok游戲動力開發(fā)包,主要分為Physics、FX、Animation、Behavior、Cloth、Destruction、AI幾大組件。Havok成立于1998年,總部位于愛爾蘭首都都柏林。引擎基于C/C++語言而成,2000年在22.htm"游戲開發(fā)者大會上發(fā)布了Havok1.0,最新版本為5.5,2007年9月,Intel宣布收購Havok。在全平臺上,共有353種游戲使用Havok引擎,超過了PhysX的309種,使用Havok的著名游戲有:《極品飛車:亡命天涯》、《星際爭霸2》、《暗黑破壞神3》、《上古卷軸4》等,圖為Havok的展示Demo:圖2-7Havok引擎展示(左為HavokPhysics,右為HavokCloth)PhysX物理運(yùn)算引擎由五名年輕的技術(shù)人員開發(fā),他們成立了AGEIA公司。由于PhysX物理引擎在設(shè)計上就并不適合用CPU去計算,因此AGEIA公司還為PhysX引擎設(shè)計了專門的運(yùn)算硬件,PhysX物理加速卡,其中的運(yùn)算核心被稱為PPU(PhysicsprocessingUnit)。圖2-8為AGEIA當(dāng)初設(shè)想的未來PC組成部分。圖2-8AGEIA當(dāng)初設(shè)想的未來PC組成部分2008年,Nvdia收購了AGEIA,物理加速卡停止開發(fā),而是將PhysX物理加速功能移植到NvdiaGPU中,用戶不必額外購買PhysX物理加速卡就能享受到PhysX物理加速功能。在PC平臺上,共有269種游戲采用PhysX引擎,而Havok為163種。表4-1Havok和PhysX在各方面的比較物理引擎:HavokPhysX物理加速多線程加速只支持NvdiaGPU加速執(zhí)行效率快不開啟GPU加速下略遜一籌跨平臺性全平臺全平臺是否開源是否游戲引擎集成寒霜Unity3D主要游戲平臺Wii、Xbox360、PS3PCUnity3DUnity3D簡介Unity3D是由UnityTechnologies開發(fā)的一款全面整合的專業(yè)"游戲引擎,其具有的功能使得開發(fā)人員可專注于游戲的設(shè)計而忽略底層的技術(shù)實現(xiàn),達(dá)到快速開發(fā)的目的。Unity類似于Director,Blendergameengine,Virtools或TorqueGameBuilder等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件其編輯器運(yùn)行在Windows和MacOSX下。其主要的特色有[7]:圖形動力:內(nèi)部封裝了DirectX和OpenGL圖形渲染庫,并附帶一些常用的渲染組件及著色器腳本。物理仿真:Unity3d不但整合了NvidiaPhysX物理引擎,并在其基礎(chǔ)上封裝了游戲中常會用到的物理組件,如碰撞體、連接體等??缙脚_性:可發(fā)布游戲至Windows、Mac、iOS、Android、Xbox、Wii或PS3平臺,也可以利用Unitywebplayer或者Flash插件發(fā)布網(wǎng)頁游戲,支持Mac和Windows的網(wǎng)頁瀏覽。資源商城:開發(fā)人員可在資源商城中購買其他人開發(fā)的資源(代碼、模型等),進(jìn)行高效復(fù)用。資源服務(wù)器:Unity資源服務(wù)器是一個附加的版本控制的產(chǎn)品,但比起SVN更適合游戲團(tuán)隊中不同職位的人員共同使用(程序、策劃、美術(shù))。性能分析器:引擎中自帶一個Profiler分析器,開發(fā)人員可在編輯器或者設(shè)備連線進(jìn)行性能分析CPU和GPU不同階段的效率。Unity3D基本概念一個完整的lJnity3d程序是由若干個場景(Scene)組合起來的,每個場景中又包含有許多游戲?qū)ο螅℅ameObject),每個對象可以具有若干組件(Component),其中的繼承自MonoBehavior的腳本組件進(jìn)行初始化、更新等操作,而我們在場景所看到的內(nèi)容是由攝像頭(Camera)來呈現(xiàn)并控制的。場景(Scene):場景是Unity3D程序的基本組成單位,任何一個Unity3D程序都是由若干場景組合而成,程序通過腳本在這些場景之間跳轉(zhuǎn)。場景通過場景圖的形式組織,場景圖實際上是一種樹形結(jié)構(gòu),其中每個節(jié)點就是一個游戲?qū)ο?。對象與對象之間存在父子關(guān)系,即當(dāng)父級對象移動、旋轉(zhuǎn)、縮放時,子級對象也跟著一起變換[8],如圖2-9所示:圖2-9旋轉(zhuǎn)一個父節(jié)點同時它的子節(jié)點也跟著旋轉(zhuǎn)游戲?qū)ο螅℅ameObject):在場景中按照場景圖形式組織,場景圖實際上是一種樹形結(jié)構(gòu),如圖。樹形層次結(jié)構(gòu)中的節(jié)點,加入的特定組件后就成了有實際功能的對象,如可渲染網(wǎng)格、攝像機(jī)、光源等,游戲?qū)ο罂梢源虬?prefab格式的文件方便復(fù)用。組件(Component):組件可以是網(wǎng)格(Mesh)、光源(Light)、攝像機(jī)(Camera)、粒子系統(tǒng)(Particle)、物理碰撞體(Collider)、布料(Cloth)、連接體(Joint)、聲音(Audio)、動畫(Animation)以及最重要的腳本(Script)。Unity3D的設(shè)計是以面向?qū)ο罄碚摓榛A(chǔ),Unity3D支持C#、JavaScript和Boo三種腳本語言,如果對象繼承自MonoBehavior腳本對象,生命周期將交給Unity3D來管理,如圖2-10所示:圖2-10MonoBehavior的生命周期車輛駕駛游戲的設(shè)計游戲創(chuàng)意隨著移動硬件設(shè)備的日益強(qiáng)大,并且移動平臺技術(shù)在這幾年得到迅猛發(fā)展,移動平臺上的游戲也出現(xiàn)了驚人的增長,輕量級、微創(chuàng)新、時間碎片化一直是移動游戲的發(fā)展趨勢?!稇嵟男▲B》、《頑皮鱷魚愛洗澡》等幾款創(chuàng)意游戲都得到了巨大的成功,這些游戲的共同特點有:1.操作簡單,游戲目的簡單。不論是高級游戲玩家還是不常玩游戲的用戶群,很容易知道如何操作并理解游戲的目的。如《憤怒的小鳥》只需一只手指調(diào)整彈弓的角度和力度最終將豬擊飛,《頑皮鱷魚愛洗澡》只要用手指刮開泥土將水引導(dǎo)進(jìn)鱷魚的浴缸;2.真實的物理規(guī)律。游戲中充分考慮到現(xiàn)實生活中的物理規(guī)律,如《憤怒的小鳥》中飛行的速度、重力的考慮,《頑皮鱷魚愛洗澡》中水流的流體走向;3.多樣化的設(shè)計。別出心裁的設(shè)計不僅使玩家產(chǎn)生興趣繼續(xù)挑戰(zhàn),也會更加開動玩家的腦筋。如《憤怒的小鳥》中小鳥不同的技能、會蕩秋千的豬、冰雪的場景和會引燃的炸藥,《頑皮鱷魚愛洗澡》中清水、污水、泥石流產(chǎn)生的不同效果,以及風(fēng)扇、噴槍的設(shè)計等;圖3-1左為《憤怒的小鳥》游戲截圖,右為《頑皮鱷魚愛洗澡》游戲截圖筆者按照這些思路產(chǎn)生了將游樂場中“碰碰車”這一游樂項目搬上有游戲的想法,游戲同樣遵從以上三個特點,下面是簡單的游戲策劃:游戲名稱:《瘋狂碰碰車》游戲類型:3D休閑益智類游戲游戲平臺:PC、Android、iOS游戲模式:多人聯(lián)機(jī)模式,單人AI練習(xí)模式游戲玩法:玩家通過操作車輛,在競技場中與其他玩家操作的車輛進(jìn)行娛樂,玩家應(yīng)該盡量操作車輛的前部去撞其他車輛的背部,這樣可以搶奪對方的游戲積分,同樣的,應(yīng)該通過躲避盡量避免自己的背部遭到襲擊。達(dá)到游戲時間后進(jìn)行積分結(jié)算,確定本場游戲排名。游戲操作:前、后、左、右,在移動設(shè)備上可映射為重力感應(yīng)和滑動操作。游戲可玩性:1.多樣的車輛,不同車輛具有不同的外形、速度以及技能等屬性,如加速快的豪華跑車、碰撞效果驚人的火車頭等,玩家通過勝過獲得游戲幣來購買夢寐以求的車輛;2.多樣的地形,可以繪制不同地域風(fēng)情的競技場,并且不同的競技場應(yīng)該有不同的物理屬性增加車輛駕駛?cè)の?,如冰川、泥濘的森林,以及適合車輛躲避的樹、草、坡度等布置;3.真實的物理仿真,如前兩個特性所列,不同的設(shè)計會帶來豐富的物理仿真效果。游戲框架結(jié)構(gòu)設(shè)計如前文所述,一個游戲包含多個場景,玩家根據(jù)當(dāng)前的游戲進(jìn)度和選項進(jìn)入不同場景。而游戲模塊為游戲提供了一些必須用到的功能,這些功能,都是完全獨立與所有的場景存在的,它們并不知道到底有多少關(guān)卡,關(guān)卡的內(nèi)容是什么,它們的主要工作,就是與游戲的控制單元進(jìn)行信息的交換,從而支持游戲的進(jìn)行。游戲框架設(shè)計必須符合游戲的玩法需求和所使用的工具,不同于大型的MMO(MassiveMultiplayerOn-Line)Game,《瘋狂碰碰車》沒有復(fù)雜的游戲系統(tǒng),更加側(cè)重于游戲可玩性的設(shè)計,并且由于使用Unity3D引擎,省去了許多底層模塊的設(shè)計,其中核心的模塊為:圖形渲染、物理仿真、網(wǎng)絡(luò)聯(lián)機(jī)。圖3-2為游戲系統(tǒng)的框架結(jié)構(gòu)圖:圖3-2游戲框架結(jié)構(gòu)游戲?qū)哟谓Y(jié)構(gòu)設(shè)計前文提到Unity3D中每個場景按照樹形層次結(jié)構(gòu)組織游戲?qū)ο?,并且每個游戲?qū)ο罂梢該碛腥舾山M件。所以整個游戲系統(tǒng)的實現(xiàn)必須遵守這種規(guī)范,在這種規(guī)范下為了符合軟件設(shè)計的高內(nèi)聚、低耦合的原則,使用MVC模型設(shè)計了一套游戲的層次結(jié)構(gòu),這樣的好處是使游戲的結(jié)構(gòu)清晰簡單,三層之間互相隔離、互不影響,日后功能的擴(kuò)展方便。如圖3-3所示:圖3-3游戲?qū)哟谓Y(jié)構(gòu)圖 游戲系統(tǒng)分為三個層來設(shè)計,分別是: 視圖層:主要為加入到場景層次結(jié)構(gòu)的游戲?qū)ο?,這些對象常常是渲染對象或攝像機(jī)。 控制層:在主攝像機(jī)或者空對象中加入的管理腳本組件,這些腳本主要是針對對應(yīng)的功能模塊的進(jìn)行控制及與其他功能模塊進(jìn)行通信,如界面管理類、網(wǎng)絡(luò)聯(lián)機(jī)管理類。 模型層:主要是在渲染對象中加入的邏輯腳本組件,這些腳本對游戲?qū)ο筮M(jìn)行邏輯處理。車輛駕駛游戲的實現(xiàn)場景渲染實現(xiàn)考慮到游戲的需求,整個場景主要包括幾類渲染對象,如天空盒、水面、地形、外部導(dǎo)入的3D模型、投影、粒子系統(tǒng)等,如圖4-1所示:圖4-1游戲場景中的渲染對象下面主要介紹一些重要渲染模塊的具體實現(xiàn):天空盒所謂天空盒,就是用一個作為遠(yuǎn)景貼圖的立方體。在立方體的前后左右上五個面貼上紋理(需要時底面也可以帖)。在簡單的天空盒實現(xiàn)中,只需要填寫好六個面的24個頂點,并設(shè)置立方體隨著視點的移動而移動,這樣就會給玩家?guī)硖炜帐窃跇O遠(yuǎn)處的錯覺。但在較為復(fù)雜的應(yīng)用中,還需要使用天空盒的紋理來生成CubeMap,并用之來做水面倒影、云影等特效的貼圖。圖4-2天空盒由六個面映射而成在Unity3D中對天空盒有很好的支持,開發(fā)人員只需要幾個簡單的步驟:1.創(chuàng)建一個材質(zhì);2.并設(shè)置Shader為Unity3D自帶的RenderFX->Skybox;3.為天空的各個面選擇貼圖;4.在RenderSetting中設(shè)置天空材質(zhì)為前面創(chuàng)建的材質(zhì)。圖4-3為實現(xiàn)的效果圖:圖4-3實現(xiàn)的天空效果水面水面的本質(zhì)即按照流體規(guī)律動態(tài)更新頂點位置的網(wǎng)格,Unity3D中的自帶有水的對象,但為了使得水面具有更真實的表現(xiàn)力,還要為水面加入反射、折射等效果,這些效果主要是通過渲染到紋理(Render-to-Texture,RTT)來實現(xiàn)。渲染到紋理,簡單來說就是把當(dāng)前場景的一部分或者全部渲染成一個可以使用的紋理上面,然后再另外一次渲染中把它當(dāng)作普通的紋理使用。光穿過水面,但被水面改變傳播方向又返回水面之上叫做反射。如圖4-4所示,向量I被稱為入射光線(incidentray),從眼睛射到物體表面,當(dāng)I到達(dá)表面的時候,它會根據(jù)表面的法向量N被從R方向反射出去,第二條光線是被反射光線(reflectedray),所以可以根據(jù)向量I和N用公式4-1計算被反射的向量R:圖4-4光線反射圖公式4-1折射與反射不同的是,光線雖然改變角度但依然進(jìn)入水面,斯涅耳定律描述了兩種媒介之間的分界面光發(fā)生了什么,如圖4-5所示,折射向量被表示為T,代表“transmitted”。斯涅耳定律在數(shù)學(xué)上可以用公式4-2表示。圖4-5斯涅耳折射定律公式4-2具體代碼實現(xiàn)中,我們以折射為例,我們首先將要被折射的物體加入到一個層——m_RefractLatyer中,然后設(shè)置一個攝像機(jī)用于渲染這個層上的所有物體,得到紋理_RefractionTex并傳給shader,然后在水面進(jìn)行紋理混合計算。以下為實現(xiàn)折射效果的關(guān)鍵代碼和水面效果截圖:代碼清單4-6折射RTT關(guān)鍵代碼圖4-7帶有折射、反射的水面效果地形[9]在Unity3D中通過高度圖來實現(xiàn)地形,高度圖實際上是一張矩形的灰度圖,在灰度模式中,顏色通過0~255來表示,0代表黑色,255代表白色,像素越亮代表地勢越高,255的像素代表此次頂點最高,反之亦然,所以像素灰度值和頂點的高度可以用公式4-3表示,其中L為像素的灰度值,yheight、y公式4-3y=程序在需要渲染地形時通過讀取這張圖片,并按照灰度生成頂點高度不一的矩形網(wǎng)格。這樣大大減少了游戲模型體積。Unity3D中的地形模塊不但可以導(dǎo)入高度圖,還可以用筆刷為繪制地形紋理、樹、草和巖石,所見即所得,大大減少了開發(fā)人員的工作量。圖4-8為小島的效果圖:圖4-8小島地形效果圖光照和投影在一般3D應(yīng)用程序中,光照和投影是各自獨立的計算過程,光照既可以使用固定管線、也可以再Shader自定光照模型實現(xiàn)。投影則是一個雙過程的技術(shù)[10]:1.首先,場景以光源的位置為視點被渲染。每個渲染圖像的像素的深度值被記錄在一個“深度紋理”中,被稱為陰影貼圖。2.然后,場景從眼睛的位置渲染,但是用標(biāo)準(zhǔn)的投影紋理把陰影貼圖從燈的位置通過投影矩陣運(yùn)算混合到場景中。在每個像素,深度采樣值(從被投影的深度紋理中)與片段到燈的距離進(jìn)行比較。如果后者小,這意味著這個片段不是陰影,不需要和投影紋理進(jìn)行混合。圖4-9舉例說明了陰影的深度比較。在圖的左邊,正要被著色的點P在陰影中,因為這個點的深度值(ZB)比記錄的陰影貼圖的深度值(ZA)大。相反,在圖的右邊顯示了點P的深度值與在陰影貼圖中記錄的值相同的情況。這意味著在在P和燈源之間沒有任何物體,因此P不再陰影中。圖4-9投影的深度比較對于靜態(tài)物體的投影渲染的第一過程計算,可以在游戲開發(fā)過程中進(jìn)行。Unity內(nèi)置的光照貼圖烘培工具是IlluminateLabs的Beast,其主要原理是對場景中所有靜態(tài)物體的光照和投影進(jìn)行計算,并利用特殊的.exr光照貼圖格式用以記錄光照和投影兩種信息,在游戲運(yùn)行時用光照貼圖對模型原有材質(zhì)進(jìn)行混合渲染,即可得到正確的光照和投影效果。這樣大大減少了游戲運(yùn)行過程中計算量,提高游戲效率。如圖4-10所示,進(jìn)行一些參數(shù)設(shè)置(實際上是設(shè)置光照模型和投影過程二的陰影紋理),選擇“BakeScene”即可為場景生成光照貼圖。圖4-10光照貼圖烘焙窗口場景物理仿真實現(xiàn)如前文提到,Unity3D內(nèi)置對NvidiaPhysX支持,其實際工作就是封裝了一些游戲中常用的組件以及腳本中調(diào)用的類,只要將這些碰撞體組件賦予游戲?qū)ο?,就被加入PhysX虛擬世界進(jìn)行運(yùn)算。下面主要介紹常用組件:剛體(Rigid):在PhysX的基本概念中,兩個碰撞體發(fā)生碰撞必須要求其中至少有一個剛體。所以對運(yùn)動的物體要賦予剛體屬性,剛體可設(shè)置質(zhì)量、重力計算、碰撞檢測頻率等屬性。網(wǎng)格碰撞體(MeshCollider):根據(jù)游戲玩法,玩家通過車身前部撞擊其他車的后部進(jìn)行游戲,在車身前部和后部各加入一個網(wǎng)格碰撞體,網(wǎng)格碰撞體可通過網(wǎng)格數(shù)據(jù)定義凸體形狀,比起基本碰撞體更加精確。地形碰撞體(TerrainCollider):通過地形模塊生成的地形可以選擇加入地形碰撞體,就這樣就可以不需要定義網(wǎng)格數(shù)據(jù)來定義網(wǎng)格碰撞體,其本質(zhì)就是根據(jù)高度圖生成的網(wǎng)格碰撞體。輪胎碰撞體(WheelCollider):汽車經(jīng)常在陡峭的地形上行走,如果將輪胎定義為一般碰撞體則容易造成碰撞而導(dǎo)致車身飛起,輪胎碰撞體具有阻尼彈性和摩擦力的屬性,不同類型的車輛可以使用不同的輪胎碰撞體參數(shù),模擬出各種效果。彈簧連接體(SpringJoint):物體之間如果通過連接有力的作用,可通過設(shè)置連接體來實現(xiàn)。彈簧連接體能夠模擬物體之間的阻尼作用。如圖4-11所示,場景中需要進(jìn)行物理計算的主要有三種:地形、一些3D模型(如柵欄)和汽車,其中地形和3D模型為靜態(tài)物體,只要為其增加靜態(tài)碰撞體組件即可。而汽車的構(gòu)造較為復(fù)雜,首先在游戲中前車身和后車身為不同的積分部位,因此要定義為兩個網(wǎng)格碰撞體,并且為了得到真實的物理效果,需要將輪胎定義為車輪碰撞體并通過彈簧連接體與車身相連,如圖4-12所示。圖4-11物理仿真模塊實現(xiàn)圖4-12汽車物理仿真的構(gòu)造汽車動力學(xué)模擬進(jìn)行了汽車的物理組件裝配之后,還要實現(xiàn)汽車動力學(xué)模型。由于汽車在駕駛過程中影響其運(yùn)動情況的因素錯綜復(fù)雜,操縱機(jī)構(gòu)對汽車的行駛存在著多輸入、多藕合、非線性的控制作用,而實時渲染游戲要求動力學(xué)仿真計算快速,要在精確度與計算速度之間折中,需要簡化動力學(xué)模型[11]。為了簡化模型,作如下假設(shè):所有車輛都是剛體,不考慮多節(jié)車廂的情況。汽車在行駛過程中,因速度的變化受到引擎的驅(qū)動力和阻力(動摩擦力、空氣阻力),如果汽車在轉(zhuǎn)彎還會收到輪胎的側(cè)摩擦力,汽車行駛過程中的基本受力圖如4-13所示:圖4-13車輛行駛受力圖 假設(shè)汽車當(dāng)前正在轉(zhuǎn)彎且速度為v,且由于轉(zhuǎn)彎輪胎和車身的z軸并不重合,速度v在輪胎x軸方向的分量為v.x,k為阻力系數(shù),根據(jù)公式4-4可得出汽車受得的阻力f和輪胎側(cè)摩擦力f側(cè): 公式4-4 f=k× f 汽車當(dāng)前引擎提供的驅(qū)動力決定于汽車當(dāng)前的檔位,檔位由當(dāng)前速度大小決定,不同的車輛有不同的檔位設(shè)計,為了控制汽車能達(dá)到的最大速度,使用二次線性增量法,vtop表示汽車能達(dá)到的最大速度,n表示該車當(dāng)前的檔位,vn表示達(dá)到該檔位的最低速度,F(xiàn)n表示n檔位收到的驅(qū)動力,k為公式4-4中的阻力系數(shù),這樣,速度、檔位、驅(qū)動力之間關(guān)系可用公式4-5表示: 公式4-5 v v Fn F根據(jù)以上得出的汽車動力學(xué)模型,需要在Unity3D中通過腳本組件實現(xiàn),首先為汽車對象增加一個繼承自MonoBehavior的Car.js腳本,在其中重寫兩個更新函數(shù)Update()和FixedUpdate(),Update()函數(shù)在每幀繪制之前調(diào)用一次,F(xiàn)ixedUpdate()通過一個計時器定時調(diào)用,時間間隔可在工程中設(shè)置。然后在這兩個更新函數(shù)進(jìn)行動力學(xué)計算。以下為兩個更新函數(shù)的代碼及各個函數(shù)的作用,其中的計算公式中使用了大量的常量因子,不同的汽車可配置不同的參數(shù)以產(chǎn)生逼真的效果:代碼清單4-14Car.js的更新函數(shù)GetInput():得到當(dāng)前玩家的輸入,如前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn);Check_If_Car_Is_Flipped():判斷汽車是否被撞翻,如果是的話,使汽車被翻正;UpdateWheelGraphics():根據(jù)汽車瞬時速度旋轉(zhuǎn)輪胎;UpdateGear():根據(jù)汽車瞬時速度變換檔位;UpdateFriction():如果汽車在轉(zhuǎn)彎狀態(tài),輪胎會受到的側(cè)摩擦力,側(cè)摩擦力和瞬時速度的x軸分量的平方成正比,如公式4-4;UpdateDrag():計算當(dāng)前受到的阻力,阻力和速度的平方成正比,如公式4-4;CalculateEnginePower():根據(jù)當(dāng)前檔位計算引擎提供的動力,如公式4-5;ApplyThrottle():根據(jù)引擎動力使汽車剛體獲得向前力模擬油門效果;ApplySteering():根據(jù)引擎動力和玩家的轉(zhuǎn)向輸入使汽車剛體獲得側(cè)向力模擬轉(zhuǎn)彎效果。用戶圖形界面實現(xiàn)Unity3D的另一個便利就是強(qiáng)大的插件功能,開發(fā)人員可以定制自己功能的菜單欄選項、組件并注冊到編輯器中使用。這種設(shè)計方式產(chǎn)生了很多第三方插件,使用這些插件可以使開發(fā)人員更快速開發(fā)需要的功能。NGUI是Unity3D中最著名的界面插件,其提供了強(qiáng)大的界面組件和相應(yīng)的類,下面主要介紹一些NGUI概念:UIRoot:任何一個場景中界面根節(jié)點,其中至少包括一個UICamera。UICamera:其本質(zhì)是一個具有UICamera腳本組件的攝像機(jī),腳本中封裝了對其子游戲?qū)ο蟮匿秩镜裙δ?。Anchor:用于偏移子游戲?qū)ο蟮牟季?,如上、下、左、右、中?Panel:NGUI中的窗口。 Button:按鈕元素,可執(zhí)行OnClick、OnPress、OnRelease等回調(diào)函數(shù) Label:標(biāo)簽元素,用于顯示文字。 Atlas:為了節(jié)省內(nèi)存中圖片和字體的占用量,NGUI可以將字體和小圖片生成一張大圖片,Atlas中保存小圖的坐標(biāo)信息,可用于索引到小圖Sprite,如圖4-15所示:圖4-15左圖為一張Atlas部分截圖,右圖為一個Sprite的坐標(biāo)索引 Sprite:其中有兩種特殊的類型,同樣起到減少資源占用量的目的。UISlicedSprite將Sprite分為九個切片,每個切片可自由縮放,適合制作邊框;UITiledSprite可以進(jìn)行平鋪擴(kuò)展,如圖4-16所示:圖4-16左圖為UISlicedSprite,右圖為UITiledSprite本游戲中要開發(fā)主要有兩類界面:一類是主菜單界面,例如玩家在啟動游戲后需要進(jìn)入一個登陸界面,可以進(jìn)行汽車選擇,游戲選項設(shè)置,進(jìn)入競技場開始游戲等操作。另一類是HUD(HeadUpDisplay)界面,即游戲進(jìn)行過程中的界面,這個界面需要在碰撞到其他車輛時進(jìn)行“冒分”,以及顯示玩家當(dāng)前游戲積分和排名等。前文已經(jīng)介紹了NGUI的一些基本概念,下圖4-17為登陸界面的層次結(jié)構(gòu),接下來就是布置界面元素的位置,以及實現(xiàn)相關(guān)回調(diào)函數(shù):圖4-17游戲登陸界面實現(xiàn)HUD的實現(xiàn)與主界面略有區(qū)別,由于要保證總是顯示最前,所以要較現(xiàn)有的3D場景之后渲染。Unity3D中會按照場景中攝像機(jī)深度值排列渲染順序,所以要將UICamera的深度值設(shè)置的比主攝像機(jī)大。圖4-18游戲HUD界面實現(xiàn)網(wǎng)絡(luò)聯(lián)機(jī)模塊實現(xiàn)要實現(xiàn)多人模式下的玩家對戰(zhàn),還需要加入網(wǎng)絡(luò)模塊,現(xiàn)有的個人計算機(jī)網(wǎng)絡(luò)主要通過套接字(socket)進(jìn)行消息傳遞,套接字可以選擇兩種主要協(xié)議:傳輸控制協(xié)議(TransmissionControlProtocol,簡稱TCP)和用戶數(shù)據(jù)報協(xié)議(UserDatagramProtocol,簡稱UDP)。TCP是一種面向連接的、可靠的通信協(xié)議,UDP是一種面向無連接的傳輸層協(xié)議,更為快速但數(shù)據(jù)包可能丟失[12]。在游戲開發(fā)過程中會根據(jù)需要選擇不同的協(xié)議,如在局域網(wǎng)大廳中,顯示房間信息和用戶聊天都可以選用UDP,在需要實時保存的玩家信息(如裝備、財寶等)必須使用可靠的TCP傳輸。Unity3DRPC(RemoteProcedureCallProtocol)是Unity3D封裝的一套網(wǎng)絡(luò)應(yīng)用層套件,跨越了傳輸層和應(yīng)用層,使得聯(lián)網(wǎng)的服務(wù)器、客戶端之間可以用過RPC函數(shù)進(jìn)行遠(yuǎn)端函數(shù)調(diào)用,使得開發(fā)包括網(wǎng)絡(luò)游戲更加容易。其中可設(shè)置可靠(reliable)和不可靠(unreliable)兩種調(diào)用方式,分別對應(yīng)于TCP和UDP。網(wǎng)絡(luò)的層次結(jié)構(gòu)如圖4-19所示:圖4-19網(wǎng)絡(luò)傳輸層次圖根據(jù)游戲設(shè)計,減少玩家的繁瑣的操作,第一個進(jìn)入游戲的玩家會自動成為房主,并定時用UDP方式在局域網(wǎng)中廣播自己的ip地址,后面進(jìn)入游戲的玩家如果收到這個ip地址,就自動連接這個ip地址進(jìn)入游戲。作為局域網(wǎng)游戲,汽車信息的更新是頻繁的,所以為了提高游戲效率,可以使用不可靠的RPC調(diào)用方式。游戲系統(tǒng)主要實現(xiàn)了NetworkManger.cs和NetworkHandle.cs兩個類,前者主要管理進(jìn)入和退出房間的UDP邏輯和其他玩家的RPC網(wǎng)絡(luò)ID,后者實現(xiàn)了相應(yīng)的RPC函數(shù),用于在對戰(zhàn)過程中,每個客戶端(包括房主)定時傳輸自己的位置、積分等信息。游戲展示與性能分析游戲展示圖5-1是游戲登陸界面,左邊可以進(jìn)行選車,右邊介紹玩法。圖5-2是游戲選項設(shè)置。圖5-3為汽車被柵欄阻攔效果。圖5-4為成功撞擊其他車輛背部并搶奪其積分。圖5-1游戲登陸界面圖5-2游戲選項設(shè)置圖5-3汽車被柵欄阻擋而飛起圖5-4成功撞擊其他車輛背部性能分析《瘋狂碰碰車》的目標(biāo)平臺是PC和移動平臺,所以選用了目前中端硬件配置的筆記本和手機(jī)分別進(jìn)行了性能測試,筆記本選用的是LenovoIdeaPadY400N,手機(jī)選用的是小米2。機(jī)器的詳細(xì)配置如表5-1:表5-1測試設(shè)備配置表設(shè)備名LenovoIdeaPadY400N小米2操作系統(tǒng)Windows7MIUI(Android4.1)CPU型號i5-3230M高通APQ8064CPU核數(shù)雙核四核CPU頻率2.6GHz1.5GHzGPUGT750M(2GB)Adreno320運(yùn)行內(nèi)存4GB2GB分辨率1366*7681280*720如圖5-5所示,在LenovoY400N中CPU和GPU耗費時間基本相同,每幀總共耗時為10ms左右,平均幀率達(dá)到90fps,游戲完全流暢。圖5-5Y400N性能分析如圖5-6所示,在小米2中CPU平均每幀的計算時間為19.74ms左右,GPU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)水利水電工程(水利工程設(shè)計)試題及答案
- 2025年大學(xué)大三(國際貿(mào)易實訓(xùn))外貿(mào)跟單實操綜合測試試題及答案
- 2025年中職道路與橋梁工程施工(路基施工技術(shù))試題及答案
- 2025年中職機(jī)械類(機(jī)械技術(shù)創(chuàng)新)試題及答案
- 2025年大學(xué)(材料成型及控制工程)粉末冶金工藝測試題及答案
- 2025年中職(工程造價)工程概預(yù)算編制階段測試題及答案
- 2025年中職汽車維修(輪胎更換)試題及答案
- 2025年中職機(jī)電技術(shù)應(yīng)用(電氣設(shè)備安裝)試題及答案
- 2026年中職第一學(xué)年(會展服務(wù))展會接待服務(wù)試題及答案
- 內(nèi)燃機(jī)調(diào)試工安全知識宣貫知識考核試卷含答案
- 2025年秋季第一學(xué)期學(xué)校語文教研組工作總結(jié)(二):攜手教研之舟漫溯語文之河【課件】
- 2025年律師事務(wù)所黨支部書記年終述職報告
- 初中歷史區(qū)域國別研究教學(xué)與跨學(xué)科整合課題報告教學(xué)研究課題報告
- 檔案工作責(zé)任追責(zé)制度
- 2024-2025學(xué)年重慶市南開中學(xué)七年級(上)期末道德與法治試卷(含答案)
- 【語文】廣東省深圳市寶安區(qū)寶城小學(xué)二年級上冊期末復(fù)習(xí)試題(含答案)
- 2025西藏日喀則市薩迦縣招聘專職網(wǎng)格員11人筆試備考題庫及答案解析
- 節(jié)能工程監(jiān)理質(zhì)量評估報告范本
- 攝影取景角度課件
- 2025寧夏黃河農(nóng)村商業(yè)銀行科技人員社會招聘考試筆試參考題庫及答案解析
- 統(tǒng)編版語文一年級上冊無紙化考評-趣味樂考 玩轉(zhuǎn)語文 課件
評論
0/150
提交評論