unity学习之可编程渲染管线 SRP Batcher

本文介绍了Unity的可编程渲染管线SRP Batcher的工作原理,强调了其在CPU渲染速度上的提升。内容包括如何在URP中启用SRP Batcher,Shader的兼容性条件,以及通过帧调试器和SRP BatcherProfiler.cs进行性能分析的方法。通过案例展示了关闭和开启SRP Batcher对DrawCall的影响,揭示了SRP Batcher如何提高渲染效率。

基本概念

SRP Batcher 是一个渲染循环,可通过许多使用同一着色器变体的材质来加快场景中的 CPU 渲染速度。(可以理解为合批处理),如标题所讲要使用SRP Batcher项目必须使用可编程渲染管线。可以是URP(通用渲染管线)/HDRP(高清渲染管线)/SRP(自定义)。

本文主要讲述在URP中使用SRP Batcher,在创建好URP工程之后(如何新建URP工程不是本文重点这里不在赘述),需要在对应的UniversalRenderPipelineAsset的Inspector窗口,找到Advance勾选SRP Batcher,当然默认也是勾选的。也可以在代码中动态修改

GraphicsSettings.useScriptableRenderPipelineBatching = true;

SRP Batcher 的工作原理

Unity 中,可以在一帧内的任何时间修改任何材质的属性。但是,这种做法有一些缺点。例如,DrawCall 使用新材质时,要执行许多作业。因此,场景中的材质越多,Unity 必须用于设置 GPU 数据的 CPU 也越多。解决此问题的传统方法是减少 DrawCall 的数量以优化 CPU 渲染成本,因为 Unity 在发出 DrawCall 之前必须进行很多设置。实际的 CPU 成本便来自该设置,而不是来自 GPU DrawCall 本身(DrawCall 只是 Unity 需要推送到 GPU 命令缓冲区的少量字节)。

SRP Batcher 通过批处理一系列 Bind 和 Draw GPU 命令来减少 DrawCall 之间的 GPU 设置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值