The choice between AABB, OBB, spheres, capsules ... depends on what type of simulation you are using and what your limitations are (usually real-time applications).
You need to evaluate the pros and cons and make your choice accordingly. For example, tests with AABB are very fast, but you need to recalculate AABB when your object rotates. However, if you process very complex objects and deal with BVH , updating the AABB tree is pretty fast, since you only need to recount ("from scratch") the lower AABBs, with the higher ones being built from the child AABBs. Tests with OBBs are more expensive, but you will not need to recount your OBBs if you are dealing with hard objects.
If you decide to use deformable objects, the AABB tree (or the Sphere tree) is definitely the best idea, since your tree should be updated anyway.
Question: what will be the more expensive overhead arising from updating the AABB tree or from tests for overlapping with OBB? It all depends on your simulations: complexity of objects, average CD tests per second, etc. You can find some tests of different CD libraries based on different methods (BVH, grids ...) with different forms tested for specific problems. Here is an example that may seem interesting to you.
As for the implementation, since all this was researched many years ago and implemented in many libraries, you should not have any problems. You can take a look at real-time collision detection by Christer Erickson, all of these questions are answered and explained very clearly.
You can also use a combination between different forms, for example. one for the wide phase and the other for the narrow phase (as soon as you reach the leaves), but you probably won't need something like that.
source share