Visualization Modes for Nanite Overdraw and VSM Cached Pages not working

Hi, the visualization modes for Nanite Overdraw and VSM Cached Pages are just showing a desaturated image, but not what is expected from the documentation.

The scene is based on the empty level template as seen in EmptyLevel.png.

[Image Removed]When enabling the Nanite Overdraw visualization, the result is only a grayscale image as seen in NaniteOverdrawVisualization.png.

[Image Removed]

Strangely enough, when setting a breakpoint in VirtualShadowMapArray.cpp::AddVisualizePass() the first two frames are displaying the nanite overdraw visualization correctly (as seen in BreakpointInAddVisualizePass.png), but the frames after that render the scene only in gray.

[Image Removed]The same happens for me when enabling VSM > Cached Pages as seen in CachedPages.png, only when I select the light source the cached pages are emphasized.

[Image Removed]Is this a known issue, or am I doing something wrong?

I would expect something along https://dev.epicgames.com/documentation/en-us/unreal-engine/virtual-shadow-maps-in-unreal-engine#managing-cache-invalidations for the VSM > Cached Pages view, without the need to select a light source.

The same for the Nanite Overdraw visualization, I would expect something like https://dev.epicgames.com/documentation/en-us/unreal-engine/nanite-virtualized-geometry-in-unreal-engine#closely-stacked-surfaces, and not the grayscaled scene.

I was able to reproduce this in 5.5.4 with a Nvidia Geforce 3080, and also on 5.6 Preview with a 5070TI.

Steps to Reproduce

  • Create New Empty Level
  • Click on Lit visualization mode and select `Virtual Shadow Map > Nanite Overdraw` or `Virtual Shadow Map > Cached Pages`

Hello there,

As far as I am aware, this is expected behaviour. The VSM visualisation modes were changed in https://github.com/EpicGames/UnrealEngine/commit/7118febcdd6d66429ab208c930906f32ba2d7f4a (CL 3385652) for 5.5. It is possible to modify the exposure settings if the background is overpowering the visualisation.

This should only apply to VSM visualisation modes. The Nanite NaniteOverdraw mode should behave as before with Nanite objects in the scene.

With no selection, you should be able to get a view that summarises all light overdraws. The same is true for invalidations.

[Image Removed]With a light selected, you should see only that single lights overdraw. This can make narrowing down which light is overdrawing, invalidating, or otherwise impacting performance an easier task to find and address.

[Image Removed][Image Removed]

Static meshes that do not invalidate their VSMs will not show by default. Cached pages do not cost during the update, and as such are excluded. If you wish to visualise them, “r.Shadow.Virtual.Cache.ForceInvalidateLocal” and “r.Shadow.Virtual.Cache.ForceInvalidateDirectional” will cause local and directional lights respectively to always invalidate and show in the VSM debug views.

I hope that helps answer your question.

Best regards,

Chris

Thank you Chris for pointing out the changelist, I think that’s what I was missing was that those modes depend on the selected lights. I think I’ve also mixed the Nanite Overdraw mode vs the VSM > Nanite Overdraw mode.

You’re very welcome.

The VSM Nanite Overdraw view mode draws the overdraw for the light update as this can elevate the cost of a lighting update. Nanite Overdraw from the Nanite menu is visualing the main view’s overdraw.

If you have any further questions, please feel free to ask. Otherwise, would you mind if I close this case for now?

Best regards,

Chris