鸟语天空
减少draw call数目——动态批处理
post by:追风剑情 2017-10-7 19:52

      如果场景中有一些模型共享了同一个材质并满足一些条件,Unity就可以自动把它们进行批处理,从而只需要花费一个draw call就可以渲染所有模型。动态批处理的基本原理是,每一帧把可以进行批处理的模型网格进行合并,再把合并后的模型数据传递给GPU,然后使用同一个材质对其渲染。除了实现方便,动态批处理的另一个好处是,经过批处理的物体仍然可以移动,这是由于在处理每帧时Unity都会重新合并一次网格。

      虽然Unity的动态批处理不需要我们进行任何额外工作,但只有满足条件的模型和材质才可以被动态批处理。需要注意的是,随着Unity版本的变化,这些条件也有一些改变。这里给出一些主要的条件限制:

      动态批处理的限制条件比较多,例如很多时候,我们的模型数据往往会超过900的顶点属性限制。这种时候依赖动态批处理来减少draw call显然已经不能够满足我们的需求了。这时,我们可以使用Unity的静态批处理技术。

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容