unity3d 动态合批设置_Unity__静态合批与动态合批

本文介绍了Unity3D的动态合批和静态合批,旨在减少draw calls提高性能。动态合批适用于小于900顶点且使用相同材质的动态物体,静态合批则对静止、相同材质的物体更有效。批处理受材质、顶点数量、缩放比例等因素影响,使用时需注意策略选择和优化。
摘要由CSDN通过智能技术生成

draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多)

一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束。

每帧都会重复以上的步骤。这就是一次draw call

如果有两个model,那么需要

设置颜色→绘图方式→顶点座标A→绘制→结束。

设置颜色→绘图方式→顶点座标B→绘制→结束。

两次draw calls;

也就是说在openGl绘制前,如果色彩通道(color filter),绘图方式(shader),顶点座标(model)不同的情况下draw calls就会增加。

对openGl来说绘制参数(状态值)的变更要比绘制大量的顶点更耗费cpu。

所谓高速绘图就是,在尽量不改变openGl状态值的情况下,用一次draw call完成所有绘制。

比如上面的例子:

设置颜色→绘图方式→顶点座标A+顶点座标B→绘制→结束。

就要更加有效率。

个人估计unity3d的dynamic batch,static batch都是通过一定的方法使不同的object的顶点座标能够结合成一个整体,达到减少draw calls的效果。

但是有一定的要求限制,比如material要相同,mesh要相同并在300个面以内等等,这些都是为了保证openGl的状态值不改变。

Unity在 Player Setting 里的两个功能选项 Static Batching 与 Dynamic Batching。功能描述如下:

Static Batching 是将标明为 Static 的静态物件,如果在使用相同材质球的条件下,Unity 会自动帮你把这两个物

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值