Improve osgAnimation rigged model culling
We have a custom class that handles osgAnimation-formats (currently Collada) by controlling two RigGeometries, one for even frames and one for odd frames, and updating them as needed. The holder class has culling enabled, while the culling is disabled for the RigGeometry classes. Culling method needs improving, as the current system doesn't give consistent good results.
See how _boundingBox
and _boundingSphere
are set at:
https://gitlab.com/OpenMW/openmw/-/blob/master/components/sceneutil/riggeometryosgaextension.cpp
In addition, there may be other performance optimizations regarding the osgAnimation-format skinned model rendering. Currently there is a very heavy drop of fps when rendering multiple animated rigged NPCs. Most time is spent at osgAnimation::RigTransformSoftware::operator()(RigGeometry& geom). It may be useful to split other optimizations into separate MRs.