Nanite Skeletal Meh LODs

Enabling Nanite, disable completely the calculations of LoD levels, witch are used in animation blueprints to disable heavy processing nodes, and for removing bone evaluation.

FSkinnedSceneProxy::FSkinnedSceneProxy(
    const FMaterialAudit& MaterialAudit,
    const FSkinnedMeshSceneProxyDesc& InMeshDesc,
    FSkeletalMeshRenderData* InRenderData,
    bool bAllowScaling
)
 NumLODs = RenderData->LODRenderData.Num();

locally I’ve added NumLODs = RenderData->LODRenderData.Num(); and LoDs get calculated again and brings back all animation features working with this.

Will this modification introduce any other issues?

[Attachment Removed]

Hi, thanks for raising this. I see that we’ve made effectively the same fix in the UE6-Main branch at 56316573 so you should be fine with your change. I’ll see what can be done about backporting this to UE5-Main.

[Attachment Removed]

I’m going to pass this issue over to the rendering team, since it needs more insight from them to be able to answer.

[Attachment Removed]

At what instance count does Nanite on skeletal meshes yield noticeable performance gains? If there are only a handful of instances, could it instead lead to worse performance?

It depends on the other engine feature’s you are using. Likely, with a handful of simple skeletal meshes and CSM, you’ll see lower CPU/GPU costs, especially if you’re not already using Nanite for static geometry. You’ll need to measure this with game-specific content, but it can be considerably faster on CPU and GPU. We used them everywhere possible on the Witcher demo and they were critical for VSM performance. The main issue is the lack of morph, cloth, overlays, groom and translucency support, though there is experimental translucency and groom support in 5.8.

Hope this helps, and let us know if you have questions about the performance measurements you see.

[Attachment Removed]

I have another question. At what instance count does Nanite on skeletal meshes yield noticeable performance gains?

If there are only a handful of instances, could it instead lead to worse performance?

[Attachment Removed]