游戲現(xiàn)在已經(jīng)融入到我們的生活中了,很多的人不管是在交友還是娛樂的時(shí)候都是玩游戲的。隨著玩游戲的人越來越多,現(xiàn)在市面上需要unity人才也是在不斷的擴(kuò)展啊,那么學(xué)習(xí)unity需要學(xué)習(xí)什么內(nèi)容呢?下面達(dá)內(nèi)科技的小編就來和大家說下其中的一個(gè)知識(shí)點(diǎn):unity的批注處理
unity3d中批處理是什么?
1.在Unity3D中進(jìn)行批處理的一個(gè)前提是相同材質(zhì)的物體可以被合并,如果這些物體使用不同的材質(zhì),那么當(dāng)我們把這些材質(zhì)對(duì)應(yīng)的紋理打成“圖集”以后可以對(duì)其進(jìn)行合并,并且在合并的時(shí)候應(yīng)該是用Renderer.sharedMaterial
而非 Renderer.material以保證材質(zhì)是可以共享的。
2.Unity3D在屏幕上繪制一個(gè)圖形本質(zhì)上調(diào)用OpneGL或者DirectX這樣的API,因此在這個(gè)過程中會(huì)產(chǎn)生一定程度上的性能消耗。DrawCall是OpenGL中描述繪制次數(shù)的一個(gè)量,比如一個(gè)基本的OpenGL繪制流程是設(shè)置顏色->繪圖方式->頂點(diǎn)坐標(biāo)->繪制->結(jié)束,在繪制的過程中每幀都會(huì)重復(fù)這個(gè)過程,這就是一次DrawCall,所以當(dāng)游戲中的繪制過程變得復(fù)雜的時(shí)候,就會(huì)帶來DrawCall的急劇增加,進(jìn)而帶來游戲的性能問題,反映到游戲表現(xiàn)上就變成了優(yōu)化問題。
3.
在Unity3D中采取了什么樣的措施來降低DrawCall?Unity3D使用了批處理來達(dá)到降低DrawCall的目的,批處理希望通過對(duì)物體網(wǎng)格的重組來獲得更高的繪制效率,試想以下如果將多個(gè)物體合并為一個(gè)物體,那么在繪制的時(shí)候只需要繪制一次就夠了,因此從這個(gè)角度上來講這樣做肯定是可以降低DrawCall的,更深刻的一種理解是這里體現(xiàn)了一種資源循環(huán)調(diào)用的思想,接觸過android開發(fā)的朋友們一定知道ListView控件可以對(duì)其元素進(jìn)行“緩存”從而提高效率,因?yàn)槲覀兛梢园l(fā)現(xiàn)其實(shí)ListView是對(duì)列表項(xiàng)進(jìn)行某種程度上的“復(fù)用”從而提高了效率,在Unity3D這里同樣遵循了這個(gè)原理。
如果說你想要學(xué)習(xí)unity技術(shù)的話,那么知識(shí)點(diǎn)肯定就不止這么少了。達(dá)內(nèi)科技?xì)g迎每位想要學(xué)習(xí)unity語言的學(xué)員來我們公司的unity培訓(xùn)班進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽資格按鈕來獲取我們的unity課程免費(fèi)試聽資格,在試聽中可以更加深入的了解我們達(dá)內(nèi)科技。