Unity里的静态批处理和动态批处理

本文介绍了Unity中的静态和动态批处理技术,旨在提高渲染性能。动态批处理自动处理共享相同材质的动态物体,而静态批处理适用于不会移动、旋转和缩放的物体,需要在Inspector中设置为Static。批处理受限于物体的顶点数和着色器属性,对缩放和光照贴图也有要求。静态批处理虽然内存开销大,但CPU效率更高,需要手动合并加载的静态物体批次。
摘要由CSDN通过智能技术生成

内容会持续更新,有错误的地方欢迎指正,谢谢!

前言

Unity在运行时可以将一些物体进行合并,从而用一个绘制调用来渲染他们。这一操作,我们称之为“批处理”,能得到越好的渲染性能。

Unity中内建的批处理机制所达到的效果要明显强于使用几何建模工具的批处理效果,因为,Unity引擎的批处理操作是在物体的可视裁剪操作之后进行的,处理的几何信息少很多。

材质

只有拥有相同材质的物体才可以进行批处理,因此,你需在程序中尽可能多地复用材质。如果你的两个材质仅仅是纹理不同,那么你可通过纹理拼合来将这两张纹理拼合成一张大的纹理,这样,你就可以使用这个单一材质来替代之前的两个材质了。

如果你要通过脚本来访问复用材质属性,那么值得注意:改变Renderer.material将会造成一份材质的拷贝,因此,你应该使用Renderer.sharedMaterial来保证材质的共享状态。

动态批处理

如果动态物体共用着相同的材质,那么Unity会自动对这些物体进行批处理,动态批处理操作是自动完成的,并不需要你进行额外的操作。

Dynamic Batching启用时,Unity将尝试自动批量移动物体到一个Draw Call中。要使物体可以被动态批处理,它们应该共享相同的材质,但是还有一些其他约束条件:

  1. 批处理动态物体需要在每个顶点上进行一定的开销,
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值