Reducing draw calls of animated meshes

Is there any way to reduce the amount of draw calls from animated meshes?

For my game i’ve got 3 types of “models”:

  1. immovable, non-animated (these are batched currently)
  2. movable, non-animated (these are instanced)
  3. movable, animated

is there any way to reduce the amount of animated model draw calls? The options i’ve thought about are:

  1. Use map chunks to detach objects from chunks far away/not within player view
  2. Bake animations to different meshes (… seen thats how its been done historically in some unity plugins) and basically display static instanced meshes (hard to maintain, memory expensive, and not sure if there will be enough objects with the same “frame” of animation to justify it)
  3. reduce the amount of animated models

is there any approach you would recommend?

Spatials outside of the view frustum are not ‘drawn’… and I’m 99% sure that animated characters outside the view frustum don’t even have their bones updated.

How many animated models will you have? Perhaps you can wait to dive into performance problems until it becomes a real issue. Even up to a few hundred animated characters may not be an actual issue.

Otherwise you will have to implement something custom (variations on option 2 I imagine) and the specifics will depend on the tradeoffs you are willing to make.

thanks for the reply:

Spatials outside of the view frustum are not ‘drawn’

Right, i meant something along the lines of occlusion culling + detaching far away object based on distance

How many animated models will you have? Perhaps you can wait to dive into performance problems until it becomes a real issue.

About 500-600 and though it isnt much of an issue at the moment i’d love this game to have the lowest possible spec requirements

But i see your point, thanks!