市面上,很多游戏都由于游戏场景优化不到位,而导致这个游戏无人问津。比如曾经名噪一时的《仙剑奇侠传六》就因为游戏场景设计不到位而陨落,那么作为Unity3D开发人员我们应该如何给游戏场景优化做批处理呢?今天千锋讲师告诉你。
在Unity3D中有静态批处理和动态批处理两种方式,下面我们就来分别说说这两种不同的批处理方式。
静态批处理
静态批处理允许游戏引擎尽可能多的去降低绘制任意大小的物体所产生的DrawCall,它会占用更多的内存资源和更少的CPU资源,因为它需要额外的内存资源来存储合并后的几何结构。
如果在静态批处理之前,有几个对象共享相同的几何结构,那么将为每个对象创建一个几何图形,无论是在编辑器还是在运行时。这看起来是个艰难的选择,你需要在内存性能和渲染性能间做出最为正确的选择。
动态批处理
相对静态批处理而言,动态批处理的要求更为严格一些,它要求批处理的动态对象具有一定的顶点,所以动态批处理只适用于包含小于900个顶点属性的网格。
如果你的着色器使用顶点位置,法线和单光,然后你可以批处理300个顶点的动态对象;而如果你的着色器使用顶点位置,法线,UV0,UV1和切线,那么只能处理180个顶点的动态对象。接下来最为重要的一点,如果动态对象使用的是不同的材质,那么即使进行了动态批处理从效率上来讲并不会有太大的提升。如果动态对象采用的是多维子材质,那么批处理是无效的。
如果你想学习到更多的Unity游戏开发技巧,可以来千锋教育Unity开发培训班。千锋Unity游戏开发培训课程深入教学的图形技术,讲解包括OpenGL渲染管线,着色器,高光计算、菲尼尔色散、雾方程式等高阶课程。对于从事过Unity游戏开发的人员也具有相当的学习价值。
相关文章
了解千锋动态
关注千锋教育服务号
扫一扫快速进入
千锋移动端页面
扫码匿名提建议
直达CEO信箱