【性能优化】关于 UE5 贴花渲染系统的同屏上限及引入 Texture2DArray 优化方案的咨询

Hello,问题描述如下:

1.场景中存在大量的环境细节(如污渍、破损、标识等)需要通过大量Decal效果,在延迟管线下同屏可见贴花数量 是否有上限以及(在重叠区域较多时)OverDraw性能问题

2.为了极致减少DrawCall使用Texture2DArray实现贴花,这种方案在 UE5 的延迟贴花着色器架构中是否存在底层冲突 或者性能问题

[Attachment Removed]

你好​

1,引擎本身并没有对于Decal的数量进行限制。使用它的限制更多来自于性能。

​延迟Decal会通过体积投影来渲染。Decal的屏幕空间的覆盖率,以及重叠以后的叠加覆盖率是影响性能的重要指标。一般是性能最差的情况就是多层重叠且较大的Decal的覆盖区域。​可以通过着色器复杂度模式来查看。

这边会建议,尽量保持Decal贴合目标,避免不必要的重叠,尽可能使用材质实例。同时考虑将一些非动态的细节,例如这些污渍、标识,如果这些细节是静态存在于场景中的,可以合并到贴图或者相应材质中去。​

​​

2,使用Texture2DArray处理Decal与UE5的延迟贴花架构完全兼容的。 对于Decal较多,变化基本基于纹理的情况,这是一种不错的优化策略。因为各个图层会共享大小和mip数量。但是如果Decal数量不多,反而算是一种开销的浪费了。您可以通过使用stat gpu查看Decal的性能消耗。

希望这个解释清楚您的问题。如果您还有其他问题,请随时告诉我。

谢谢

Henry Liu​

[Attachment Removed]