I've implemented frustum culling and it works great for static meshes, but skeletal animated meshes might go outside of the pre-calculated aabb (or sphere), and still get culled.
So the best solution I could think of is to go through all the animation sets when the model is loaded, and calculate the maximum aabb that can possibly be.
I already do skinning in the glsl vertex shader, but software skinning sounds harder to implement.
The implementation stages I have in my head are these:
When loading a model:
1. Load all meshes. (don't dump vertices and vertex weights that are stored on the cpu yet)
2. Load all animation sets.
3. Go through all animation sets, calculate bone transforms for every key frame, and transform all the meshes' vertices.
For each key frame, calculate the entire model's AABB, and merge it with the previous AABB.
This should take my much time to implement, so I wanted to ask here if it sounds okay and if there's anything I'm missing.