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

А какие вообще существуют подходы резолвинга столкновений? (2 стр)

Страницы: 1 2
#15
19:25, 13 сен 2023

monobogdan
Все неправильно
1. Penetration test - проверяется взаимное проникновение тел, через SAT или GJK, если есть - они расталкиваются на расстояние минимальной глубины погружения.
Проблемы - после выталкивания тело может оказаться погруженным в какое-нибудь другое тело, в худшем случае выталкивания могут образовать бесконечный цикл. Еще проблема - быстродвижущиеся тела могут пролетать сквозь препятствия, если на шаге физики не успеешь поймать момент погружения
2. Continous Collision Detection (CCD) - ищешь момент первого столкновения тел в будущем и продолжаешь симуляцию до него, обрабатываешь, ищешь следующее столкновение итд. Этот метод физически точный, но сложнее в реализации, зато не имеет указанных выше проблем. Проблемы - если два тела уже столкнулись в данный момент времени - CCD вернет время 0 до столкновения и попадешб в бемконечный цикл. Пример - игрок в шутере уперся в стену, должен скользить вдоль стены. В методе Penetration Test это решается постоянным выталкиванием игрока из стены по нормали. Для CCD же надо изобретать какие-то варианты, вроде рассматривать далее движение игрока в плоскости стены, не считая пересечение с ней

#16
(Правка: 11:09) 9:13, 14 сен 2023

Поясните по SAT, пожалуйста
В 2D в качестве кандидатов в разделяющие оси берутся нормали к сторонам
2 непересекающихся отрезка на одной прямой в 2D - это разве не контрпример? Нормаль у них одна - перпендикуляр к прямой и он не отделяет отрезки

Вообще, для непересекаюшихся многоугольников/многогранников ближайшими точками могут быть две вершины, в этом случае ребра и грани не играют роли

#17
(Правка: 14:38) 5:10, 25 сен 2023

А зачем ответ потерли?
Для двух выпуклых непересекающихся многоугольников с ближайшими точками А и В разделяющей прямой будет сторона, прилежащая к А или В и образующая с АВ меньший угол (все 4 - тупые), а нормаль к ней - соотв разделяющей осью
Аналогично в 3D, грань, прилежащая к АВ и образующая  с ней наименьший тупой угол, ее плоскость не пересекает прочие прилежащие к АВ грани и является разделяющей

Страницы: 1 2
ПрограммированиеФорумФизика