當前位置:歷史故事大全網 - 歷史上的今天 - cocos Creator 2.4 . x drawcall優化第壹階段(掌握必要的知識控制draw call的數量)。

cocos Creator 2.4 . x drawcall優化第壹階段(掌握必要的知識控制draw call的數量)。

1,測試環境

2、為什麽drawcall會影響性能?

3.哪些組件支持渲染?

4、影響提款的因素

5.用壹句話介紹如何減少drawcall。

6.哪些渲染組件不會被渲染?

7、減少drawcall的理論(在第二階段)

8、理論指導實踐,實踐印證理論,演示實踐(第三期)

9、總結(在第三期)

“測試環境”:

1.Mac系統

2.Cocos Creator版本2.4.x。

“為什麽drawcall會影響性能?」

Drawcall:繪圖調用是指cpu調用圖形繪制接口來命令gpu繪制圖形。

“每次畫圖前,cpu都要準備好顏色濾鏡、著色器等復雜數據處理的畫圖參數(狀態),然後進行畫圖調用。如果有大量的draw調用,CPU會很忙,而gpu的處理能力很強。此時可能會閑置,無法發揮應有的能力,導致性能下降。」

"哪些組件支持渲染?"因為drawcall是cpu調用圖形繪制接口來命令gpu繪制和渲染圖形的過程,所以為了更好地控制drawcall,需要了解cocoscreator中哪些組件支持渲染。

**

"影響drawcall的因素:"

1,層次結構(zindex)

2、材質)(山德、紋理、融合)。只能批處理具有相同材質的渲染節點。紋理和著色器決定材質,級別決定同壹材質是否可以合並,也就是用drawcall合並網格。

《如何用壹句話減少drawcall》:“繪圖狀態的改變是drawcall增加的主要原因。Cocoscreator認為渲染組件應該以zindex-first的方式渲染,cocoscreator認為同樣的材質可以批量渲染。因此,材質相同的連續渲染節點可以合並渲染以減少drawcall。

"連續:"

1,級別相同,加法順序相鄰,

2.中間層沒有其他材質的渲染組件,級別不同。比如A的等級是1 b,A的等級是3。1-3級別之間沒有其他材質的渲染組件。

"影響drawcall的因素:"

1,渲染節點(zindex)級別

ZIndex是節點的層次結構,是用於對節點進行排序的關鍵屬性。它決定了兄弟節點之間的層次結構,以及誰在渲染中具有優先權。

1) zIndex的值介於cc.macro.M IN_ZINDEX和cc.macro.MAX_ZINDEX之間

也就是between-math.pow(2,15)。以及math.pow(2,15)-1。

實際操作中壹般是-1到n n,壹般不會超過1000。

2)父節點主要根據它們的zIndex和添加順序進行排序。具有較高zIndex的節點將排在後面(渲染後首先渲染的圖形位於稍後渲染的圖形下方)。如果兩個節點的zIndex壹致,則最先添加的節點將排在另壹個節點之前。首先渲染第壹個節點,這意味著兩層是同壹級別。添加的第壹個節點將首先呈現,顯示的結果位於稍後呈現的圖形下方。

3)子節點的順序決定了它們的渲染順序。父節點總是在所有子節點之前呈現。

4)畫布中節點或父節點的zindex默認值為0。

5)決定節點級別的另壹個因素是siblingIndex,其權重低於zIndex。當我們在編輯器中編輯借用點時,兄弟節點之間的zIndex是相同的。為什麽壹個先渲染,壹個後渲染?因為siblingIndex不壹樣,前面的siblingIndex比較小,後面的Sibling Index比較大,最後後面的後選等級正好在前面的上面。也就是說,zindex起著決定性的作用。如果zIndex相同,比較siblingIndex確定最終級別。

“2、材質”

1)紋理(貼圖)

2)shander: Renderer,壹個可以理解點和顏色對應關系的程序,簡單來說就是畫圖的方式)

只有具有相同材料的對象才能被批量處理。所以,如果想要得到壹個好的批量效果,就需要在程序中盡可能的重用材質和對象。

如果妳的兩種材質只是紋理不同,可以通過紋理拼接操作將這兩種紋理合成壹個大紋理。壹旦紋理放在壹起,您可以使用這種單壹的材料來取代前兩種材料。

"哪些渲染組件不會被渲染"

Cocoscreator認為渲染組件透明度= = 0。或者active = false將不被呈現。

  • 上一篇:武都區行政區劃
  • 下一篇:敦煌歷史文化論文
  • copyright 2024歷史故事大全網