深入了解 Unity 批处理

本文深入探讨Unity3D的批处理技术,旨在降低DrawCall,提升绘制效率。批处理要求物体材质相同,分为静态和动态两种方式。静态批处理适用于静态物体,能显著降低DrawCall但增加内存消耗;动态批处理适用于少量动态物体,受限于顶点数量和特定条件。了解这些细节有助于优化Unity游戏的性能。
摘要由CSDN通过智能技术生成

       DrawCall是OpenGL中描述绘制次数的一个量,例如一个基本的OpenGL绘制流程是设置颜色、设置绘图方式、顶点坐标、绘制、结束。

       目的:Unity3D使用了批处理来达到降低DrawCall的目的,批处理希望通过对物体网格的重组来获得更高的绘制效率。通俗点讲,多个物体合并成一个物体后,多个DrawCall就变成一个啦。

       条件:Unity3D中批处理要求物体的材质相同。如果有些物体使用不同的材质,那么把这些材质对应的纹理打成“图集”以后可以对其进行合并。

        方式:动态批处理和静态批处理。

一.静态批处理

       场景中相对来说“静态”的物体勾选Static选项。

       优点:静态批处理允许游戏引擎尽可能多的去降低绘制任意大小的物体所产生的DrawCall。

       缺点:需要占用更多的内存资源,因为它需要额外的内存资源来存储合并后的几何结构,在静态批处理之前,如果有几个对象共享相同的几何结构,那么将为每个对象创建一个几何图形,无论是在编辑器还是在运行时。用空间换时间的做法使内存性能和渲染性能产生了矛盾,需要抉择。

        原理:将静态对象转换为世界空间,并为它们构建一个很大的的顶点索引缓冲区。同一批中一系列的统一处理。

        静态批处理目前只支持静态批处理目前只支持Unity ios Advanced。

二.动态批处理

        要求:上万数量级别的物件用动态批处理显然是扛不住的,动态批处理通过将所有物体的顶点转换为CPU上的世界空间来工作,所以它只能在渲染Draw Call的工作量小于CPU顶点转换工作量的时候,才会起到提高性能的作用。

        注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值