Spawning a larger number of Skinned Instanced Meshes (with the intended use as Nanite Foliage) seems to incur a huge performance penalty to the game thread, mostly “Post Tick Component Update” and “Transform or Render Data” but only during play/PIE, not in editor mode.
This makes actually using skinned meshes as foliage seemingly prohibitively expensive in game right now.
It happens with, or without a valid TransformProvider, with our without Dynamic Wind, it also happens when all animations are culled with r.Skinning.DefaultAnimationMinScreenSize 50.
Happens with a valid PCG spawner setup, happens also when spawned through BP.
It is not inherently due to instance count, the same meshes spawned as static instanced meshes perform fine.
Again though, this does not show up during regular in-editor use at all, but reliably during play/PIE.
Tested on earlier 5.7, 5.7 preview and a recent Github build, as of tonight.
Reproduced on a completely new empty project as well.
Repro steps:
Create new empty game project, enable PCG/PVE plugin, enable Nanite foliage, restart.
Drag in the default PCG graph (/ProceduralVegetationEditor/SampleAssets/PCG/Wind_Example_PCG.Wind_Example_PCG, using this one specifically for easier repro, it’s just a basic skinned instanced mesh spawner), set position to 0,0,0, set scale to 300/300/10.
This leads to approximately 35.000 points/instances.
(Snap to camera position 1, start PIE once, so the camera gets aligned to ground, to get same view in editor/PIE. :
: )
That’s the comparison in this case, one image in editor, one in PIE with 35.000 instances, one in PIE with 85.000 instances. Adding more instances makes it significantly worse, I can make it reach up to 100ms in play, while it’s always essentially at 0 in editor. Worst performing image is with 85.000 points (graph scale set to 500/500/10).
Adding more instances further exacerbates the issue until you are most certainly game thread limited.










