文章插图
我们做反向的深度测试,也只对同时通过深度测试和模板测试的像素着色。使用这种算法后,你可以仅计算与光照体积相交的像素。不过这会增添额外的绘制调用,以及各绘制调用之间的状态切换。
但在我们的测试中,这项优化在大部分移动端的情况下仍然是有益的。尤其是你的场景中并没有很多局部光源的情况,因此在你使用延迟着色时,这项优化是默认启用的。但你可以随时禁用它,只要使用r.Mobile.UselightStencilCulling即可。
【 缓冲区|UE渲染师Dyomin:做次世代手游,可以用好这项技能】我们依次渲染各个局部光照,按照其贡献调整最终场景颜色。但当屏幕上有许多局部光源时,为每个光源进行绘制调用,会消耗大量性能。我觉得这个转折点大概是个可见绘制调用个可见光源,所以如果你使用模板裁剪优化的话,就必须调用。
你会有个只为了渲染光源的大概绘制调用,当存在大量重叠光源时,性能消耗也会很大,因为这要消耗大量GPU算力。不过可以采用的办法是,将视野分散到各个图块并在帧开始时运行一个计算任务,由此生成光源列表。它们会影响每个集群,在渲染平行光时,我们查看光源列表,可以将影响到当前像素的所有局部光源融为一体。这意味着我们可以在一次绘制调用中应用所有局部光源的光照。
用来裁剪局部光源的优化,在延迟着色时,无法与集群并用。这种集群延迟着色是被默认禁用的,所以你只能在需要大量可见光源时才能开启它。
关于移动端延迟着色的性能表现,我们尚未完全探明。但在更早期的测试中,它在GPU上的速度比前向着色慢了5%。但我们可以使用了一些测量工具来查看数据。
结果表明,延迟着色在GPU上的计算开销要少得多,使用的内存带宽也少得多,所以它读写的内存更少。
我们计划在《堡垒之夜》移动版上,在某些情况下来启用它,测试延迟着色。
结语:
相比前向着色,延迟着色可能是更好的选择。移动端延迟着色是一项新功能,它带有实验性质,所以对我们来说,它还有很大改进空间。
首先就是优化。我说过,它目前采用位的G缓冲区,我觉得我们可以把它降低到位。目前它只支持默认有光照的着色模型,以及无光照的。所以我们要为它添加更多着色模型,至少要有次表面着色和透明涂层。但要添加这些着色模型,我们就需要在G缓冲区内增加额外的空间,所以我们要让它们变得更精简。
有了延迟着色,就能够有效地渲染光照函数,以及IES光照配置文件。所以我们也添加了IES光照配置文件。
还有,目前移动端前向渲染可以适用于聚光灯的动态阴影,但延迟渲染做不到。因此我们也需要添加前向渲染。
- 金刚伞|梦幻西游:这波师傅不背锅,把金刚伞看成金刚石,说师门被暗改了
- epic|中国武术题材动作游戏《师父》预购开启 2022年2月22日发售
- 八岐大蛇|阴阳师:未收录SSR/SP券要不要入手 硬核保底避免非酋属性必备
- 合成|王者荣耀11.2体验服:大批装备调整,贤者之书加强,法师荣耀降临
- 阴阳师|阴阳师:今天的4X普追一波5X强追一波稳定阵容
- 王俊凯|英雄联盟手游全新活动:明星召唤师和你一起“峡谷竞技挑战”
- 总设计师|他是三国杀中最稀有的武将,目前只有总设计师拥有使用权
- 英雄联盟|英雄联盟手游全新活动:明星召唤师和你一起“峡谷竞技挑战”
- 老师|语文老师周瑜霸占了体育课,看看数学老师诸葛亮怎么来捣乱!
- aoe|阴阳师川猿超鬼王核心MVP打手汇总 养好这几个式神可一轮清BOSS