Then once we have detected the collision, we need to calculate the effect of the collision, generate new velocities, spins, etc. I have tried to calculate the formulae in the collision section, and as you can see, it get very complicated when all objects can have 6 degrees of freedom. So, for the reasons above, although the scenegraph is normally used for rendering, it may not always be the best way to model the physics. Other posibilities are discussed in this section. Analytical methods require us to solve some complex equations, and therefore require a lot of work at design time.
Numerical methods involve less complex equations but more calculation is done at runtime.
This is a tradeoff, in the most general case we will probably have to use numerical methods, but in more restricted cases we may be able to build a faster, more efficient, simulation by using analytical methods. So if we put more analysis at design time, we may be able to design the program to run faster. There are different types of collision and it may be more efficient to choose the type of model depending on the application. For instance some applications involve perfectly elastic collisions, where all the energy of the collision is transformed back into kinetic energy, an example of this might be a simulation of snooker or pool.