unity 静态合批,unity动态批处理
欢迎加入团结qq交流群:956187480
1.分批配料说明1。如果多个对象使用相同的材质,unity会将使用相同材质的对象的绘图信息一次性传输到GPU。
批处理,大大减少了CPU和GPU的频繁交互,所以在开发过程中尽量让多个对象共享同一个素材。
2.批量处理所需的所有操作都由unity自动完成,无需我们开发人员的参与。这里需要了解的是如何配合Unity3d引擎完成这些任务,对提升性能有很大帮助。
2.选中批处理unity设置中编辑项目设置播放器中的静态批处理静态批处理和动态批处理动态批处理复选框。默认情况下,会自动选中所有项目。
静态批处理:1 .空项目默认会有2批(天空盒和相机),创建一个模型后会增加2倍,模型的网格和模型的材质。
2.将模型设置为静态后,你会发现bactches的数量减少了,主要是因为网格合并了。
3.如果材质不一样,你会发现这个材质会增加一批,只合并网格。
总结:
1.静态对象的网格过滤器将自动生成新的网格。如果有相同材质的着色器并且参数一致,DrawCall将被合并。
2.静态批处理中的最大顶点数是65535。如果固定点的数量超过它,Unity会自动合并出多个网格。
4.此外,运行游戏后,合并的网格对象不能被置换,但其指定的根节点可以移动。
5.可以使用脚本动态设置需要合并在一起的游戏对象。游戏对象不需要检查静态标记。
公共游戏对象[]gos;
私有void开始()
{
StaticBatchingUtility。Combine(gos,game object);
}隐患需要注意:
自动静态批量使用起来非常方便,但也存在隐患。如果场景很大,合并后的网格也会很大。游戏运行后只要有一小部分出现在摄像机中,整个大网格都需要参与渲染,所以需要开发者自定义处理,并限制最大固定点数。静态批处理的原理是自动生成网格,但不同网格保存的信息可能不一样。例如,颜色和切线可能保存在网格中,但大多数网格不需要这些信息。如果静态批处理中的一个mesh包含这些信息,那么合并后整个Mesh都会带着这些信息,这无疑会增加一些额外的开销。所以最好在艺术层面杜绝这类问题。
动态批处理1。动态批处理不需要开发者设置,unity自动处理,只对网格顶点少于300个有效。如果顶点位置法线UV0 UV1和切线用于着色器,网格的固定点数必须小于180。(在粒子特效上发挥很大优势)。
2.在下列情况下,不执行动态批处理
A.缩放比例分别为(1,1,1)和(2,2,2)的两个对象不会被批处理。不要使用比例尺。
B.使用光照贴图的对象不会被批量处理,因为有一个额外的光照烘焙材质,
C.接收到阴影的对象将不会被批处理。
D.具有多个渲染通道的着色器着色器是相同的。
欢迎加入团结qq交流群:956187480
版权归作者所有:原创作品来自博主奇幻世界,转载授权请联系作者,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。