Based on my knowledge, the number of vertices (peaks) in a mesh directly affects performance through vertex transforms. Each vertex position must be computed by the CPU every frame, which is a fast operation but can add up with many skeletons on screen.
When using only one bone:
If each vertex in your mesh is weighted 100% to a single bone, there is very little overhead for using weights. In this case, the main performance consideration is simply the total number of vertices that need their positions calculated.
For your automatic mesh generation:
- Hull size matters for different reasons: While detailed meshes that closely trace your image borders won't significantly hurt CPU performance with one bone, they do provide other benefits:
- Pixels outside the hull are not drawn at all and don't count against fill rate
- This can improve performance for games that are fill rate limited, especially for large images with lots of blank space
- When texture packing, mesh regions can be packed more tightly, fitting more images in a single atlas page
General guidance:
- Keep vertices to the minimum necessary for your needs
- For a mesh bound to only one bone without deformation, you mainly want to exclude blank space efficiently
- The CPU cost of vertex transforms is relatively low on desktop (thousands of bones are generally fine), but can matter more on mobile (around 2000+ bones may cause issues on some devices)
Unless you're creating extremely complex meshes with hundreds of vertices across many skeletons, grabbing image borders closely for space optimization is usually worth the minimal CPU cost.