千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Unity中如何批处理静态和动态问题

Unity中如何批处理静态和动态问题

来源:千锋教育
发布人:syq
时间: 2022-07-21 15:45:00 1658389500

  Unity 在游戏开发行业中扮演着非常重要的角色。很多游戏都是用Unity开发的,所以在Unity运行的时候,需要合并一些对象,用一张图来渲染。这就是Batch processing,今天的文章只是想告诉大家Unity中如何处理批处理的静态和动态问题

Unity中如何处理批处理的静态和动态问题

  动态批处理

  如果动态对象共享相同的材质,Unity 会自动批处理这些对象。

  动态批处理是自动完成的,不需要您进行额外的工作。

  提示:

  1、 批处理动态对象需要每个顶点的开销,因此动态批处理仅支持少于 900 个顶点的网格。

  2、 如果你的着色器使用顶点位置、法线和UV值,那么你只能批处理低于300个顶点的对象;如果您的着色器需要使用顶点位置、法线、UV0、UV1 和切线向量,那么您只能批处理低于 180 个顶点的对象。

  3、请注意:属性数量的限制将来可能会改变。

  4、 不要使用比例。两个具有比例的对象(分别为 1,1,1) 和 (2,2,2)) 不会被批处理。

  5、 均匀缩放的对象不会与非均匀缩放的对象进行批处理。

  两个具有尺度 (1,1,1) 和 (1,2,1)) 的对象不会被批处理,而是具有尺度 (1,2,1) 和 (1,3, 1) 两个对象将能够被批处理。

  6、 不同材质的实例化对象会导致批处理失败。

  7、带有光照贴图的对象具有额外的(隐藏的)材质属性,例如光照贴图偏移和缩放因子。因此,带有光照贴图的对象不会被批处理(除非它们指向光照贴图的同一部分)。

  8、 多通道着色器会妨碍批处理操作。例如,Unity 中几乎所有的着色器都支持前向渲染中的多个灯光,从而有效地为它们打开了多个通道。

  9、预设实例将自动使用相同的网格和材质。

  静态批处理

  相比之下,静态批处理允许引擎批处理任何大小的几何对象以减少绘制调用(只要对象不移动并且具有相同的材质)。因此,静态批处理比动态批处理效率更高,您应该尽量少使用它,因为它需要的 CPU 开销更少。

  为了更好地使用静态批处理,您需要明确指出哪些对象是静态的,并且在游戏中永远不会移动、旋转和缩放。要完成此步骤,您只需在 Inspector 中勾选 Static 复选框。

  使用静态批处理操作需要额外的内存开销来存储合并的几何数据。在静态批处理之前,如果某些对象共享相同的几何图形,引擎将为处于编辑和运行状态的每个对象创建几何图形的副本。这并不总是一个好主意,因为有时,您将不得不牺牲一点渲染性能来防止某些对象的静态批处理,从而减少内存开销。例如,将茂密森林中的树设置为静态会导致严重的内存开销。

  静态批处理目前仅支持 Unity iOS Advanced。

  Unity中如何处理批处理的静态和动态问题?不同的问题必须以不同的方式处理。如果您对Unity有更多的专业知识需要学习,那么您可以来我们千锋教育的Unity培训班实地考察,或咨询我们了解详情。更多关于Unity培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT