Для начала, разберёмся, что такое физический объект. Физический объект обладает некой поверхностью, которой он может соприкасаться с другими. Обычно это шар, капсула, параллелепипед (бокс), но потенциально это может быть вообще любое множество, главное подобрать соответствующие алгоритмы обработки. А ещё физический объект обладает физическими свойствами типа массы и импульса. Для столкновения обязательно, чтобы оба объекта обладали поверхностью и хотя бы один массой, потому что для обработки столкновений нужно что-то двигать, а если нечего двигать, то предотвратить такое столкновение физическому движку невозможно.
Короче говоря, всё это очень тяжело