Is skinned animated mesh (instanced and multiplied) is the best way to optimize bunch of models in different poses (same model)?

I was poking around for the best way to optimize the scene.
I designed a base model and rigged it with bunch of poses (let’s say about 10-12). Then populated the scene.

I have two options how to process it.

  1. Skinned medium acceptable optimized mesh with a timeline of 5-20 frames that contain different poses. → Multiply mesh as instance and apply specific frame/timecode to each instance individually (if possible). There are many perks in this solution (for example, each visitor each time he/her would see characters in different poses that I would define in script) but I don’t know if it will work out at all.

  2. Basic individual meshes with just optimized to 1-2 polys in areas we don’t see during parallax mouse/cam move and animations between scenes.

Would be great to hear an input from gurus before I will dive into it. :pray:

Thanks!

1 Like

Instancing skinned meshes is possible in WebGL, but it’s not a case that THREE.InstancedMesh handles “off the shelf” for you, and it’s fairly complex to set it up. If you only have 10-12 poses, I doubt you’ll get enough benefit (if any) to justify all that work.

I would start with just rendering the same geometry once for each pose — if you find that your scene’s performance is bottlenecked by draw calls you can optimize it later, but a scene with <100 draw calls is probably okay.

2 Likes

It made next move very clear. Thanks a lot for your advice.