Начните с того, что объекты сталкиваются поверхностями.
Далее — можно проводить дискретизацию формы объекта с уменьшением точности (скажем, контур объекта 1000 точек, построить производные объекты с 100 точками, с 10). Обсчитывать полностью только грубую модель. На выходе вы не будете знать, столкнулимь объекты или нет (на то она и грубая), но сможете примерно прикинуть вероятность (коэффициенты зависят от формы модели) и узлы которые ближе всего друг к другу и потенциально участвуют в столкновении.
Если вероятность столкновения по грубой модели велика, обсчитать этот участок в более высоком разрешении и т.д.