赞
踩
Batches:批处理
批出理的核心就是CPU把使用相同材质球的物体的网格合并再一起,然后把这个合并后的网格扔给GPU渲染,而不是一个一个网格扔给GPU渲染。
Stats面板上的Batches的值(批处理次数)说白了就是Draw Call的次数,就是要渲染完整个场景,CPU要总共通知GPU多少次。
UGUI控件本质上也是网格,渲染上和3D组件没有什么不同
UGUI的合批就是把某个Canvas下满足合批规则的UI控件的网格合并为一个大的网格,然后将这些网格合并在一起,调用一次Draw Call,然后提交个GPU进行绘制。
总体规则
规则细节
深度值的计算规则
对于当前的UI元素CurrentUI
i. 如果CurrentUI不渲染,则Depth = -1
ii. 如果CurrentUI要渲染,但CurrentUI下面没有其他UI元素与其相交,则Depth = 0
iii. 如果CurrentUI要渲染,下面只有一个UI元素(LowerUI)与其相交,且CurrentUI与LowerUI可以合批(材质和贴图完全相同),则CurrentUI.Depth = LowerUI.Depth;如果两者不能合批,CurrentUI.Depth= LowerUI.Depth + 1
iv. 如果CurrentUI要渲染,下面有n个元素与其相交,则按照步骤iii,分别计算出n个Depth(Depth_1、Depth_2、Depth_3…),然后CurrentUI.Depth取其最大值,即CurrentUI.Depth = max(Depth_1, Depth_2, Depth_3,…)
上面步骤中的“下面”和“相交”要明确下意思,这两个概念很重要。
细节中的细节
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。