Unity在游戲開(kāi)發(fā)行業(yè)起到的作用是非常大的,很多的游戲就是使用unity開(kāi)發(fā)出來(lái)的,那么在unity在運(yùn)行的時(shí)候是需要把一些物體進(jìn)行合并的,從而用一個(gè)繪制來(lái)渲染他們,這個(gè)就是批處理了,今天達(dá)內(nèi)科技的這篇文章就是想和大家說(shuō)在unity中批處理靜態(tài)和動(dòng)態(tài)的問(wèn)題要怎么解決:
動(dòng)態(tài)批處理
如果動(dòng)態(tài)物體共用著相同的材質(zhì),那么Unity會(huì)自動(dòng)對(duì)這些物體進(jìn)行批處理。
動(dòng)態(tài)批處理操作是自動(dòng)完成的,并不需要你進(jìn)行額外的操作。
Tips:
提醒:
1、 批處理動(dòng)態(tài)物體需要在每個(gè)頂點(diǎn)上進(jìn)行一定的開(kāi)銷,所以動(dòng)態(tài)批處理僅支持小于900頂點(diǎn)的網(wǎng)格物體。
2、
如果你的著色器使用頂點(diǎn)位置,法線和UV值三種屬性,那么你只能批處理300頂點(diǎn)以下的物體;如果你的著色器需要使用頂點(diǎn)位置,法線,UV0,UV1和切向量,那你只能批處理180頂點(diǎn)以下的物體。
3、請(qǐng)注意:屬性數(shù)量的限制可能會(huì)在將來(lái)進(jìn)行改變。
4、 不要使用縮放尺度(scale)。分別擁有縮放尺度(1,1,1)和(2,2,2)的兩個(gè)物體將不會(huì)進(jìn)行批處理。
5、 統(tǒng)一縮放尺度的物體不會(huì)與非統(tǒng)一縮放尺度的物體進(jìn)行批處理。
使用縮放尺度(1,1,1)和
(1,2,1)的兩個(gè)物體將不會(huì)進(jìn)行批處理,但是使用縮放尺度(1,2,1)和(1,3,1)的兩個(gè)物體將可以進(jìn)行批處理。
6、 使用不同材質(zhì)的實(shí)例化物體(instance)將會(huì)導(dǎo)致批處理失敗。
7、擁有l(wèi)ightmap的物體含有額外(隱藏)的材質(zhì)屬性,比如:lightmap的偏移和縮放系數(shù)等。所以,擁有l(wèi)ightmap的物體將不會(huì)進(jìn)行批處理(除非他們指向lightmap的同一部分)。
8、 多通道的shader會(huì)妨礙批處理操作。比如,幾乎unity中所有的著色器在前向渲染中都支持多個(gè)光源,并為它們有效地開(kāi)辟多個(gè)通道。
9、預(yù)設(shè)體的實(shí)例會(huì)自動(dòng)地使用相同的網(wǎng)格模型和材質(zhì)。
靜態(tài)批處理
相對(duì)而言,靜態(tài)批處理操作允許引擎對(duì)任意大小的幾何物體進(jìn)行批處理操作來(lái)降低繪制調(diào)用(只要這些物體不移動(dòng),并且擁有相同的材質(zhì))。因此,靜態(tài)批處理比動(dòng)態(tài)批處理更加有效,你應(yīng)該盡量低使用它,因?yàn)樗枰俚腃PU開(kāi)銷。
為了更好地使用靜態(tài)批處理,你需要明確指出哪些物體是靜止的,并且在游戲中永遠(yuǎn)不會(huì)移動(dòng)、旋轉(zhuǎn)和縮放。想完成這一步,你只需要在檢測(cè)器(Inspector)中將Static復(fù)選框打勾即可,如下圖所示:
使用靜態(tài)批處理操作需要額外的內(nèi)存開(kāi)銷來(lái)儲(chǔ)存合并后的幾何數(shù)據(jù)。在靜態(tài)批處理之前,如果一些物體共用了同樣的幾何數(shù)據(jù),那么引擎會(huì)在編輯以及運(yùn)行狀態(tài)對(duì)每個(gè)物體創(chuàng)建一個(gè)幾何數(shù)據(jù)的備份。這并不總是一個(gè)好的想法,因?yàn)橛袝r(shí)候,你將不得不犧牲一點(diǎn)渲染性能來(lái)防止一些物體的靜態(tài)批處理,從而保持較少的內(nèi)存開(kāi)銷。比如,將濃密森里中樹(shù)設(shè)為Static,會(huì)導(dǎo)致嚴(yán)重的內(nèi)存開(kāi)銷。
靜態(tài)批處理目前只支持Unity iOS Advanced。
不同的問(wèn)題肯定是有不同的處理方式的,如果說(shuō)你對(duì)于unity上有更多的專業(yè)上的知識(shí)需要去學(xué)習(xí)的話,那么可以來(lái)我們達(dá)內(nèi)科技的unity培訓(xùn)班進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽(tīng)資格按鈕來(lái)獲取我們的unity課程免費(fèi)試聽(tīng)資格,在試聽(tīng)中可以更加深入的了解達(dá)內(nèi)科技。