Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Статьи / Физика автомобиля для игр. (2 стр)

Физика автомобиля для игр. (2 стр)

Волшебные Константы

Пока мы ввели две волшебные константы в наших уравнениях: Cdrag и Crr. Если вы не сильно заинтересованы в реализме, то вы можете назначать этим константам любые значения, которые смотрятся и чувствуют себя хорошо в вашей игре. Например, в гоночной аркаде вы можете захотеть иметь такой автомобиль, который ускоряется быстрее, чем любой автомобиль в реальной жизни. С другой стороны, если вы действительно серьезно относитесь к реалистичному поведению автомобиля, то вы, наверное, захотите получить правильные константы.

Сопротивление воздуха приближено к следующей формуле (Fluid Mechanics by Lan-dau and Lifshitz, [Beckham] chapter 6, [Zuvich])

Fdrag = 0.5 * Cd * A * rho * v2
где Cd = коэффициент трения
А - передняя часть автомобиля
rho (греческая буква ) = плотность воздуха
v = скорость автомобиля

Плотность воздуха (rho) - 1.29 кг/м3 (0.0801 lb-mass/ft3), передняя часть - приблизительно 2.2 м2 (20 квадратных футов), Cd зависит от формы автомобиля и определяется испытаниями в аэродинамической трубе. Приблизительное значение для Corvette: 0.30. Теперь мы можем найти значение для Cdrag:

Cdrag = 0.5 * 0.30 * 2.2 * 1.29 = 0.4257

Мы уже нашли, что Crr должен быть приблизительно в 30 раз больше Cdrag. Отсюда

Crr = 30 * 0.4257 = 12.8

Честно говоря, у меня есть сомнения на счет последней константы. Я не смог где-либо найти подтверждение её значения. Возможно придётся самому подобрать значение для этой константы, чтобы получить реалистичное поведение.

Торможение

При торможении, сила тяги заменяется силой торможения, которая направлена в противоположном направлении. Тогда продольная сила - это векторная сумма из этих трех сил.

Flong = Fbraking + Fdrag + Frr

Простая модель торможения:

Fbraking =-u * Cbraking

В этой модели сила торможения является постоянной. Не забудьте отключить силу торможения, когда скорость уменьшится до нуля, иначе автомобиль начнет двигаться в противоположном направлении.

Перемещение Веса

Важный эффект при ускорении или торможении - эффект динамического перемещения веса. При интенсивном торможении автомобиль будет наклоняться вперед, а при ускорении - назад. Подобное происходит и с водителем, который прижимается к водительскому креслу, когда он жмет на педаль газа, так как изменяется центр массы автомобиля. При этом эффекте вес на задних колесах возрастает при ускорении, а на передних наоборот уменьшается.

Эффект перемещения веса важен для игр по двум причинам. Прежде всего визуальный эффект перемещения автомобиля в ответ на действия водителя добавляет реализма к игре. Пользователю сразу видно, что поведение машины становится намного реалистичней, на что влияет жизненный опыт.

И второе, распределение веса сильно влияет на максимальную силу тяги колеса. Дело в том, что есть предел трения для колеса, которой пропорционален нагрузке на этом колесе:

Fmax = mu * W
где mu - коэффициент трения шины. Для уличных шин он может быть 1.0, для шин гоночного автомобиля он может доходить до 1.5.

Для неподвижной машины общий вес автомобиля (W, который равняется М * g), распространен на передних и задних колесах согласно расстоянию задней и передней оси  до центра масс (c и b соответственно):

Wf = (c/L) *W 

Wr = (b/L) *W
Где b - расстояние от CG до передней оси, c - расстояние от CG до задней оси и L - длина между центрами колес.

Если автомобиль ускоряется или замедляется на величину a, то вес на передней оси (Wf) и задней оси (Wr) может быть рассчитан следующим образом:

Wf = (c/L) *W - (h/L) *M*a 

Wr = (b/L) *W + (h/L) *M*a,
где h - высота CG, М - масса автомобиля, и a - ускорение (отрицательное в случае замедления).

Обратите внимание, что, если CG больше к задней части автомобиля (c < b), то больше веса падает на заднюю ось и наоборот.

Изображение

Если вы хотите упростить это, то вы можете предположить, что при неподвижном состоянии автомобиля вес на передней и задней оси распределяется как 50 на 50. Другими словами, примите b = c = L/2. В этом случае, Wf = 0.5*W - (h/L) *M*a и Wr = 0.5*W + (h/L) *M*a;

Страницы: 1 2 3 48 Следующая »

23 мая 2003

#autosim, #автомобиль


Обновление: 4 июня 2010

2001—2018 © GameDev.ru — Разработка игр