NVidia Skinned Instancing support for UE

Hello guys,

I’ve been googling around a bit, but as far as I can see no one has implemented this yet in UE.
We are currently working on a grand strategy game with huge siege battles. As a graphics programmer I could rewrite a large part of the UE rendering code to support nvidia skinned instances as described in this paper http://developer.download.nvidia.com/SDK/10/direct3d/Source/SkinnedInstancing/doc/SkinnedInstancingWhitePaper.pdf
but that would take a fair bit of time away from developing the project.

What I would like to know is, do you guys know if someone already did this and if there are maybe different ways that are already supported in UE to render large crowds of skeleton meshes?

Kind regards,

Roderick

Sadly he doesn’t release his source as he says it’s a private project. Good to know it’s possible though.
We’d like to have at least 10k units on screen, around 5k poly each. Is this even feasible using this method?

Thats 50 million triangles, which is quite a lot for the GPU. In VR you could not do that, but for a regular game that just has to run with 30 fps on high end GPUs that’s fine I guess. On the CPU it would be cheap due to being instanced.

You don’t need 10k units with 5k each though I guess, 5k is a lot and if 10k units are visible then you can’t see a difference between 500 and 5k triangles for each unit, because the units have to be really small for 10k of them to fit on the screen.

Someone already made this in Unity3D: 30,000 Characters On Screen(Performance Doubled With CPU Threading) - Epic Battle Simulator - YouTube
According to the creator without any instancing, but with batching the meshes and avoiding the default unity rendering system and some voodoo shader stuff.

Is this even possible in Unreal? It probably should but I would like to get a second opinion

“System works by baking the characters animations to solid meshes combined with instancing and LOD.”

I have been looking at that paper for my own project and was a bit surprised it wasn’t somehow implemented into Unreal already.
There must be many games where this would be extremely handy.

I would certainly jump at using it if you made something! :slight_smile:

Cheers,

looking for this kind of set up still in 2019, 4.22 might be useful with auto instancing

oh hey I was here already, haha.

So I’m looking into this again. I’ve already got HISM for lots of ai, but the problem is that their collisions do not update with vertex animations. So now I’m wondering is it better to possibly get the collisions to update with the vertex animation or if it’s better to build something off the skinned mesh component. I’m not really sure what would be better in this case. I’m also not sure if I’d just end up with what is essentially a skeletal mesh anyway.

It’s starting to sound like I’d get the same results putting all my meshes onto one skeletal mesh and updating the animations per section of the mesh. That just seems so sloppy now a days though. Certainly an instanced skeletal mesh or some kind of simplified animated mesh with collisions is possible without going through that kind of hassle, right?

Unity already has instanced skinned meshes, would be cool to have them in UE4 too :slight_smile: So sad that @**srathbun-vl **has disappeared, he could release his work as a plugin to marketplace…