Hello,问题描述如下:
1.场景中存在大量的环境细节(如污渍、破损、标识等)需要通过大量Decal效果,在延迟管线下同屏可见贴花数量 是否有上限以及(在重叠区域较多时)OverDraw性能问题
2.为了极致减少DrawCall使用Texture2DArray实现贴花,这种方案在 UE5 的延迟贴花着色器架构中是否存在底层冲突 或者性能问题
[Attachment Removed]
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]