Fortnite, How do you think dynamic geometry is set?

I mean the parts that the player uses for build things, we know movility cannot be set at runtime so all the buildings made by the users stay movable? and not merged? so a lot of draw calls?
or you can spawn staticmeshes to be not movable? but even in that case how do you think draw calls are reduced?

edit: or they are instances? you can set transform individually for instances I guess… (does that reduce draw calls?)

Maybe someone at Epic will jump in, but off the top of my head there’s a couple ways they could do it.

1.) Occlusion Culling will prevent you from issuing draw calls for things you can’t see, so there’s some savings there.
2.) You could use instanced static meshes which would allow you to draw multiple instances of the same mesh with different transforms (good for roofs, walls, etc).
3.) Actually bake out the mesh if the user has stopped building for a while (may or may not work given you still need sections of the base to respond to damage).


4.) Having all those dynamic meshes/actors really doesn’t hurt much, so it’s not a huge problem and you’re overthinking things. :slight_smile:

You can use renderdoc and find out! No game is safe from a little reverse engineering…

I forgot a good one too: how do they manage the individual animations of the parts when the player adds one panel? in example you can see the individual logs or tables appearing one by one and moving to the main piece!!!

I believe they use pivot-based animations, so the animations actually occur in the material, not like traditional animations with a skeletal mesh. Skeletal meshes for all those things would be way too expensive. Look at the Pivot Painter content example.

Meshes being moveable doesn’t effect draw calls afaik, and everything in the Fortnite world is moveable I believe.

cool, thanks im going to check that out!