Unity的DrawCall优化
作者:互联网
DrawCall是CPU显卡向GPU图形处理器发送的一条数据信息,然后把信息绘制出来。
游戏中DrawCall是越少越好,对于现在时代的手机,drawcall达到300左右也还是能接受的,如果超过1000可就难受了。
DrawCall又分为UI上的和场景中的,但是他们产生数量不同的大多数原因其实就是材质id不一样,所以无法进行合批。
UI上的DrawCall通常打个图集就可以了。
场景中的物体可以进行静态合批,其原理是把静态批处理的模型合并到一个新的网格中,
只需要在Inspector面板右上角的Static勾选,条件是物体必须是同一个材质,并且物体不能移动,缺点是会产生实际的内存开销。
也可以进行动态合批,其原理是每一帧把进行批处理的模型网络进行合并,再把合并后模型数据传递给GPU,
条件是有模型顶点数量限制。
还有进行GPU Instancing合批,可以为不同的实例提供不同的旋转比例颜色等特性,不能将Skinned Mesh Renderer应用到实例化,并不是所有平台和API都支持实例化。
还有一种就是直接用代码合并,获取物体的MeshRenderer,重新生成一个material然后赋值给新物体,将旧物体隐藏。
标签:合批,模型,DrawCall,Unity,实例,GPU,优化,物体 来源: https://www.cnblogs.com/salmol/p/16512133.html