Notifications
Article
飞船内饰搭建(一)——SRP Batcher篇
Published 5 months ago
1.8 K
35
铛~铛~铛~大家好!我是樱花兔,好久不见啦~~(*^_^*)!
我又来了呢~今天呢,我主要给大家介绍下HDRP下的的SRP Batcher啦,然后还有分享一点图啦~后续呢,我会写些其他领域的具体的详细的分享~


标准Unity渲染流程
在Unity内部渲染路径中,当检测到新材质时,CPU会收集所有属性并在GPU内存中设置不同的常量缓冲区。 GPU缓冲区的数量取决于Shader如何声明其CBUFFER


SRP Batcher 渲染流程
如果我们使用SRP技术,我们需要关心并写一些引擎底层代码。我们能原生地集成一些新的范式 - 比如GPU的数据管理(生命权);目标是由大量不同材质、但Shader变体较少的场景下,提升渲染性能。
如下,底层渲染路径可以让材质数据在GPU中持久存在。如果材质没有发生变化的话,则无需设置缓冲区并将其上传到GPU。此外,可以使用专用代码快速更新指定数据至大量的GPU-Buff上。新的流程图是这样的:
这里,CPU只处理内置的引擎属性,比如基本转换矩阵,所有的材质被托管至GPU的CBuffer上,随时可以被调用~



嗯嗯...以上是我摘抄的~具体原理就这样哈~我们看下实际效果~


足足减少了1.5ms呢~~ 是不是很给力呢,注意喽,Skinned Mesh Render和半透明的物体是不在此项优化中的哦~
性能提升来自于:
1、所有材质数据都被托管至GPU内存中~
2、每个对象的基础数据(例如Position/Scale/Rotation...) 被托管至GPU CBuffer中~



好些,先到这里吧~,然后呢,这是我目前正在搭建的关卡哦,先放些截图给大家分享~后续我会分享下程序员无法完成的事:灯光的构建艺术~~(●'◡'●)



— 字就码到这了~睡觉啦~~回见~
— 还有还有,点赞~!评论~!转发~!
樱花兔
一个做单机游戏的美少女,商务合作Q:262745567 - Producer
15
Comments
pan jinglun
2 months ago
支持小兔
0
CJ
Chen Jack
4 months ago
这🛏真圆!
0
三原色
4 months ago
UNITY开发工程师
美少女大佬好强啊
0
ssss
4 months ago
😭想知道那个流程图的软件
0
樱花兔
4 months ago
一个做单机游戏的美少女,商务合作Q:262745567
CGBull现在悲催的自己整InstanceMesh😓
太惨了你…
0