Войти
ПрограммированиеФорумФизика

Как можно просчитать столкновение двух кубов в 3D пространстве?

#0
22:22, 20 мар. 2019

Есть два кубика, они движутся друг к другу под разными углами (произвольными). Требуется просчитать их столкновение, зная min и max вершины обоих кубов. Вообще может у кого материалы по коллизии для "чайников" есть?) Спасибо, буду особенно благодарен за формулы.


#1
12:21, 21 мар. 2019

Вам сюда : Помогите написать физический движок :)

Вы даже не представляете сколько секса всё это...  Потом вы захотите добавить ещё один объект в обсчёт и всё повторится вновь.

Лучше взять уже готовое решение : PhysX , Havok , ещё какая-нибудь библиотека просчёта физики ( возможно бесплатная )

#2
(Правка: 15:43) 15:42, 21 мар. 2019

sampl_e
+1 к ответу bykabak. Но проверить пересечение это ещё полдела, что то в этом духе:

function aabbCollision(AABB o1, AABB o2)
{
  return (o1.max > o2.min && o1.max < o2.max && o2.max > o1.min && o2.max < o1.max);
}

Проблемы начинаются когда это всё приходится оптимизировать для десятков объекты.
Придётся писать многопоточные солверы разных типов коллизий, управлять жизненным циклом Rigidbody(заставлять их спать/просыпаться по требованию), гуглитить кучу формул из школьной физики.
Лучше взять например ODE или Bullet. Мне последний понравился, хотя его солвер не такой быстрый как у других движков - у него есть Plain C API(для дотнета нисколько не преимущество) и он совсем не перегружен, как например physx. А так суть везде сводится к одному - физический движок просчитывает физику и отдаёт тебе матрицу трансформации для каждого объекта(которую надо будет ещё сконвертировать в формат матриц D3D), которую ты должен будешь применять на этапе рендеринга к своему объекту. И главное преимущество - и тот и другой есть под шарп.

#3
19:09, 21 мар. 2019

Спасибо за ответы!

#4
22:16, 21 мар. 2019

sampl_e
> Требуется просчитать их столкновение
Конкретнее? Определить факт столкновения, или найти последствия столкновения?
http://www.realtimerendering.com/intersections.html

ПрограммированиеФорумФизика