Irradiance field gather's radiance cache probe update GPU cost

Hello:

I use lumen’s irradiance filed gather in our low device PC game.

Our game have many dynamic large bus running in scene, they cause many probes to update and cost too much GPU time, if I set the probe update budget number is small, they will cause some black artifact on ground and bus with the probe not update in time.

I have made translucent radiance cache reuse opaque radiance cache to reduce probe update number, and now just one radiance cache in total lumen pipeline.

I can make these probes update in time, change their update priority of bucket or force these probe caused by running bus to update in one frame. But these update will cost more GPU time.

I have make the probe resolution is 8x8, and can not reduce it more.

So someone has more ideas about this problem? Thank you !

[Attachment Removed]

重现步骤[Attachment Removed]

Hello,

I have made translucent radiance cache reuse opaque radiance cache to reduce probe update number, and now just one radiance cache in total lumen pipeline.

It’s possible this is the same change we made in this changelist:

CL#53479945 (e67ba6) * Enabled Lumen Translucency Volume on Medium GI Quality, costs .17ms on Switch 2 but fixes Volumetric Fog and lit translucency being too bright indoors

* Implemented r.Lumen.TranslucencyReflections.RadianceCache when using Irradiance Field Gather, costs .12ms on Switch 2 with a single lit translucent mesh, but fixes lit translucency being too bright indoors

* Lumen Translucency Volume can now share the Radiance Cache used by the opaque Final Gather, with a Clipmap Bias (r.Lumen.TranslucencyVolume.ShareRadianceCacheWithOpaque). This is enabled by default on Medium GI Quality and saves .43ms on Switch 2 with SWRT (.25ms with HWRT because of the trace batching).

* Use dedicated downsample shader for IrradianceFieldGather instead of StochasticLighting::TileClassificationMark, saves .09ms on graphics pipe and .41ms with async compute.

* Fixed Lumen Radiance Cache not fully updating when it should due to r.Lumen.RadianceCache.TemporaryAtlasDownsampleFactor. This was causing GI to be black when switching scalability levels or enabling / disabling the directional or sky lights.

It was committed earlier this week so I’m not sure if you are on such a recent version of the engine. The change includes several fixes but the way it uses the opaque radiance cache is done together with a clipmap bias to prevent the Lumen Translucency GI Volume from adding too many probes (since it marks everything in frustum, not just near surfaces).

Our game have many dynamic large bus running in scene, they cause many probes to update and cost too much GPU time.

By default Irradiance Field Gather is configured assuming mostly static scenes with only a few small areas moving each frame, but for scenes with large moving areas it may be necessary to reduce the number of probes. r.Lumen.IrradianceFieldGather.GridResolution can be lowered to reduce the number of probe updates required to cover a given world space region, which it sounds like you have tried. Of course this will cause more leaking and reduce the quality of the GI.

When adjusting the radiance cache settings, use r.Lumen.IrradianceFieldGather.RadianceCache.Stats 1 and make sure that ‘Min new probe trace cost’ doesn’t use up all of the probe trace budget while the camera is still, and that ProbesInAtlas never reaches the max. This also helps to see when the radiance cache trace cost exceeds the budget.

I hope that helps address the performance and quality issues you are seeing.

[Attachment Removed]