Hardware Raytraced Shadow of Nanite meshes do not react to WPO animations

Hello,

We use WPO-animated foliage and recently switched to only using HWRT shadows, as we are in a context where we control the target hardware and those proved to be more performant overall.

However, we observed that our foliage’s shadows were not moving anymore and that the moving geometry could become shadowed by its own RT proxy, depending on the animation.

We double-cheked the components’ configuration and those correctly enable the “Evaluate world position offset in raytracing” option.

After some digging, we ended up on this [UDN [Content removed] that reports the same issue, and later indicated that the current release version of the engine does not support this use-case, but that recent commits on the ue-main indicated that this was being worked on.

To confirm that this indeed solved our issue, we downloaded and compiled the source version of the ue-main branch and confirmed that our use-case worked on StaticMeshComponents.

However, this does not seem to be the case for ISM and HISM components, which according to the source code need some more work to be compatible.

As such, we have 2 questions :

When can we expect this functionnality being released in a launcher version of the engine ?

When it does, can we expect ISMs and HISMs to be compatible aswell ? Or will those be supported at a later date ?

Thanks in advance,

Joaquim

Steps to Reproduce
In 5.5 Launcher version :

  • Enable Raytraced Shadows
  • Instantiate a StaticMesh with a WPO material and “Evaluate World Position Offset in Raytracing” enabled
  • See that the StaticMesh’s shadow does not match the offseted geometry

In ue-main :

  • Same process but using InstancedStaticMeshes instead

Hello,

Apologies for the delay. StaticMeshComponents with a WPO Material and “Evaluate World Position Offset in Raytracing” enabled should cast ray-traced shadows in UE Main and UE 5.6. InstancedStaticMeshes should also support this in UE Main and UE 5.6 , but be sure r.RayTracing.Geometry.InstancedStaticMeshes.EvaluateWPO=1 (all with WPO) or -1 (only those with WPO enabled), by default it’s 0.