Download

how to update the mesh used by GPU skinning?

Hi,

I’m trying to modify the mesh used by a SkeletalMeshComponent at runtime in C++, more specifically the position of some vertices. To do that, I update the values in the VertexBufferGPUSkin buffer of the FSkeletalMeshResource’s LOD (I only have 1 LOD), and this works fine if I force my mesh to use CPU skinning as a test. With GPU skinning however, I don’t see any change on screen, although I thought (looking at the UE4 source code) calling MarkRenderStateDirty() or RecreateRenderState_Concurrent() on my component would to the trick and push my changes to the render thread.

Any idea what I’m missing? Thanks.

I think I figured it out: calling BeginUpdateResourceRHI on my updated VertexBufferGPUSkin fixes the issue.