观看麻豆影视文化有限公司-国产 高清 在线-国产 日韩 欧美 亚洲-国产 日韩 欧美 综合-日日夜夜免费精品视频-日日夜夜噜

游戲打call是什么意思(現(xiàn)在的打call是什么意思)

  • 生活
  • 2023-04-19 16:22

降低游戲的Drawcall,是渲染優(yōu)化很重要的手段,接下來(lái)從以下4個(gè)方面來(lái)分析如何降低DrawCall:

降低Drawcall的意義是什么?如何查看游戲的Drawcall;Drawcall合批的常用的技術(shù)手段原理與優(yōu)缺點(diǎn);組織項(xiàng)目讓Drawcall最小需要注意的點(diǎn);摘抄官方關(guān)于Drawcall合批的一些規(guī)定

搞清楚這些,Drawcall的優(yōu)化基本上就能很好的掌握好。

降低Drawcall的意義是什么?如何查看游戲的Drawcall

游戲引擎遍歷游戲場(chǎng)景中的所有的物體,然后得到一個(gè)物體的渲染順序,然后按照順序提交給GPU來(lái)繪制游戲畫(huà)面出來(lái)。每次渲染時(shí),CPU把每次繪制要使用的數(shù)據(jù)傳遞給GPU,然后向GPU下達(dá)繪制DrawCall指令,GPU接收到指令以后”開(kāi)機(jī)”繪制游戲物體出來(lái)。假設(shè)我們有100個(gè)物體需要渲染,如果分100次提交給GPU,每次GPU渲染一個(gè),完成后再渲染下一個(gè),這樣CPU就要向GPU傳送數(shù)據(jù)100次,同時(shí)下達(dá)100次的渲染命令。如果是這樣,CPU提交數(shù)據(jù)給GPU,下達(dá)指令會(huì)有額外的開(kāi)銷,GPU每次可以處理很多個(gè)面,但是由于每次只送進(jìn)來(lái)一個(gè)物體,導(dǎo)致GPU的處理能力沒(méi)有發(fā)揮出來(lái)。假設(shè)把100個(gè)物體一次提交給GPU一起繪制,CPU不用反反復(fù)復(fù)的給GPU下達(dá)指令,重復(fù)傳送數(shù)據(jù),GPU一次開(kāi)機(jī)把100個(gè)物體一次處理好,發(fā)揮最大的性能。把N個(gè)物體合并到一起來(lái)提交給GPU,GPU一次繪制,這個(gè)過(guò)程我們叫做合批。CPU給GPU下達(dá)一次渲染指令叫Drawcall。提交繪制一個(gè)游戲場(chǎng)景,場(chǎng)景中的物體分幾次提交給GPU進(jìn)行繪制我們叫做批次數(shù)目(Batches),又叫Drawcall次數(shù)。如果100個(gè)物體分100次提交給GPU,Drawcall/批次數(shù)目(Batches)為100,100個(gè)物體分2次提交給GPU,Drawcall/批次數(shù)目(Batches)為2。

如何查看游戲運(yùn)行時(shí)Drawcall的數(shù)目,如下圖所示:

總結(jié)一下降低Drawcall次數(shù)的意義:

a:避免CPU反復(fù)多次的提交數(shù)據(jù)給GPU而產(chǎn)生的開(kāi)銷;

b:每次提交盡可能多的物體,能最大限度發(fā)揮GPU的性能,提升GPU的吞吐量;

Drawcall合批的常用的技術(shù)手段原理與優(yōu)缺點(diǎn)

盡可能的讓我們的游戲場(chǎng)景的物體能最少的批次完成渲染,一次渲染盡可能多的物體,降低Drawcall能提升渲染的性能。Unity游戲開(kāi)發(fā)中有哪些常用的技術(shù)能將物體合批,降低Drawcall呢?

首先物體能合批的首要條件就是提交繪制的物體一定要是”同一個(gè)材質(zhì)”,只有這些物體才有合批的可能。假設(shè)我們提交給GPU渲染的物體排列如下:A1A2A3A4A5A6B1B2B3B4B5B6其中A1,…A6表示這6個(gè)物體使用同一個(gè)材質(zhì)A,B1,…B6標(biāo)識(shí)6個(gè)物體使用同一個(gè)材質(zhì)B。

靜態(tài)合批:

游戲引擎會(huì)將"能夠合批“(同一個(gè)材質(zhì)球)的"靜態(tài)物體"(所以你要標(biāo)記為靜態(tài)不可移動(dòng)物體)預(yù)先合并好成一個(gè)新的整體的網(wǎng)格,提交給GPU渲染。

靜態(tài)合批處理的局限性(缺點(diǎn))

a:要求物體是靜態(tài)不可移動(dòng)的;

b:預(yù)先計(jì)算好合并整體網(wǎng)格,合并后的內(nèi)存開(kāi)銷增加;

c:N個(gè)物體使用同一個(gè)網(wǎng)格,把所有的網(wǎng)格合并到一起,合并后會(huì)有N個(gè)網(wǎng)格的數(shù)據(jù)導(dǎo)致內(nèi)存暴漲,這時(shí)候要關(guān)閉靜態(tài)的合批。例如森林有1000棵樹(shù),采用靜態(tài)合批后做成一個(gè)1000個(gè)樹(shù)合在一起的網(wǎng)格,合并后的網(wǎng)格占用的內(nèi)存空間就會(huì)很大,所以這種情況下一般關(guān)閉靜態(tài)合批。

動(dòng)態(tài)合批:

游戲引擎將"能夠動(dòng)態(tài)合批"的(同一個(gè)材質(zhì)球)物體的每個(gè)頂點(diǎn),根據(jù)世界變換矩陣,用CPU來(lái)計(jì)算合批物體的每個(gè)頂點(diǎn)對(duì)應(yīng)的世界空間的坐標(biāo),然后就把計(jì)算后的物體的頂點(diǎn)(世界空間下的頂點(diǎn))與單位矩陣一起提交給GPU,GPU一起把他們渲染出來(lái)出來(lái)。

由上可知,動(dòng)態(tài)合批是一個(gè)雙刃劍,雖然可以獲得合批提升的渲染性能,但同時(shí)CPU計(jì)算出頂點(diǎn)的世界坐標(biāo)會(huì)產(chǎn)生額外的運(yùn)算開(kāi)銷,使用動(dòng)態(tài)的合批的時(shí)候,我們要關(guān)注一下,付出+得到是不是成比例。

動(dòng)態(tài)合批是引擎會(huì)自動(dòng)處理的,所以引擎會(huì)對(duì)能夠動(dòng)態(tài)合批的物體,會(huì)有一些條件的限制,引擎和系統(tǒng)給的合批的限制是頂點(diǎn)數(shù)目不應(yīng)過(guò)多;

最后總結(jié)一下動(dòng)態(tài)合批的缺點(diǎn):CPU的開(kāi)銷和drawcall減少得到性能提升之間來(lái)做平衡;

GPUInstancing合批:

同一個(gè)網(wǎng)格對(duì)象的N個(gè)實(shí)例的繪制可以采用GPUInstancing合批。它的本質(zhì)就是提交一次網(wǎng)格物體給GPU,GPU繪制出這個(gè)物體的N個(gè)實(shí)例到不同的地方(位置,旋轉(zhuǎn),縮放)。如1000個(gè)小兵采用GPUInstancing合批,提交一個(gè)小兵的網(wǎng)格對(duì)象給GPU,GPU根據(jù)1000個(gè)小兵的位置來(lái)繪制出來(lái)我們1000個(gè)實(shí)例。

1000個(gè)實(shí)例,可以在同一個(gè)批次進(jìn)行完成(1000個(gè)實(shí)例<GPU每次處理的極限),如果1000個(gè)兵一起合批超過(guò)了顯卡的極限就分多批如:800兵一批,200兵一批;

GPUInstacing合批是非常好的一種方式,它的缺點(diǎn)就是有些老的顯卡不支持。

組織項(xiàng)目讓Drawcall更小需要注意的點(diǎn)

合理的安排物體,注意不要打亂物體的合批。3D物體的渲染順序是引擎自動(dòng)計(jì)算出來(lái)的,盡可能的在3D場(chǎng)景里面讓物體使用同一個(gè)材質(zhì),盡可能的在同一個(gè)渲染隊(duì)列里面使用同一個(gè)材質(zhì),盡可能的在3D場(chǎng)景里面使用同一個(gè)種shader,不要根據(jù)物體渲染的需順序來(lái)回切換shader(SetPassCall開(kāi)銷很大)。2DUI物體盡可能的安排同一個(gè)圖集的物體在一起,如任務(wù)系統(tǒng)UI,盡量的讓任務(wù)系統(tǒng)這些UI物體在一個(gè)圖集里,這樣可以合批渲染;

將多個(gè)物體的紋理合并到一起,如游戲地圖上的障礙物,可以將這些障礙物與地圖的紋理合并到一起,這樣地圖和障礙物可以由合批的可能。

最后美術(shù)把能合批的物體生成到一個(gè)fbx模型里面,這樣從美術(shù)的層次來(lái)減少渲染批次。

今天的分享就到這里了,關(guān)注我們可以獲得更詳細(xì)的官方給出的合批的一些規(guī)定,幫助大家優(yōu)化Drawcall。

猜你喜歡

主站蜘蛛池模板: 欧美成人看片一区二区三区尤物 | 欧美色欧美亚洲高清在线视频 | 国产精品久久在线观看 | 九九成人 | 久久在线资源 | 中文国产成人精品少久久 | 不卡一区在线观看 | 日韩中文字幕视频在线 | 手机看片午夜 | 国产高清精品久久久久久久 | 美女黄视频在线观看 | 日本国产最新一区二区三区 | 亚洲清纯自偷自拍另类专区 | 欧美成在线 | 久久免费视频在线观看 | 欧美一级v片 | 乱人伦中文字幕视频 | 亚洲国产精品一区二区久久 | 久久这里只有精品免费视频 | 久久久久国产视频 | www.亚洲在线| 三级网站国产 | 国产永久高清免费动作片www | 日韩在线高清 | 久久精品18 | 国产成人精品免费视频大 | 男女视频免费 | 欧美6699在线视频免费 | 成人五级毛片免费播放 | 免费一级在线 | 国产一二三区精品 | 日韩一级视频在线观看播放 | 免费v片在线观看 | 日本一区二区三区在线 视频观看免费 | 99久久综合 | 纯欧美一级毛片_免费 | 欧美日韩一区二区三区视频 | 99精品福利视频在线一区 | tom影院亚洲国产 | 爱爱爱久久久久久久 | 精品真实国产乱文在线 |