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

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

Страницы: 19 10 11 1237 Следующая »
#135
(Правка: 5:41) 5:38, 10 мая 2018

vindast
> В целом результат лучше того, что у меня получалось.
вот, именно так оно должно выглядеть. следующий шаг — в каждый джойнт подвески в добавок к упругости добавить вязкость по закону вроде:
[cht]f=-\alpha v[/cht]

учти, что этот метод для подвески — самый простой, но не позволит моделировать очень жёсткую или очень вязкую подвеску. для жёсткой подвески нужны чуть более продвинутые методы, если она понадобится.


#136
5:49, 10 мая 2018

Да да, я думал как раз над демпфером.
Тут вопрос в том как подсчитать эту скорость сжатия.

Suslik
> учти, что этот метод для подвески — самый простой, но не позволит моделировать
> очень жёсткую или очень вязкую подвеску. для жёсткой подвески нужны чуть более
> продвинутые методы, если она понадобится.
Я собираюсь в итоге получить подвеску из нескольких тел на джоинтах.

#137
(Правка: 6:07) 6:03, 10 мая 2018

vindast
> Тут вопрос в том как подсчитать эту скорость сжатия.
ну так в чём проблема-то?

vec3 relVelocity = joint->body0->GetWorldPointVelocity(body0->GetWorldPoint(joint->relPoint0)) - joint->body1->GetWorldPointVelocity(body1->GetWorldPoint(joint->relPoint1));
float velocityProjection = dot(relVelocity, joint->axis);
в твоём случае если одно из тел — всегда земля, то второго слагаемого вообще нет. хотя я бы не рекомендовал так делать, потому что всё переписывать придётся, лучше сразу ориентироваться на два тела для каждого джойнта, хотя бы из соображений симметрии.

vindast
> Я собираюсь в итоге получить подвеску из нескольких тел на джоинтах.
проблема в том, что джойнт для колеса — достаточно сложный. я бы мог тебе объяснить, как он работает, но, наверное, лучше сначала потренироваться на более простых: hinge, linear, и с подвески вообще без джойнтов, через силы. когда ты будешь чувствовать себя свободно в стандартных джойнтах, уже можешь делать более сложные. но начинать с подвески — не, не очень.

#138
6:32, 10 мая 2018

Там же лучи, а не система тел.

#139
6:34, 10 мая 2018

Suslik
> и с подвески вообще без джойнтов
Там сейчас рейкаст из точки прикрепления к корпусу.

#140
7:02, 10 мая 2018

Suslik
> joint->body0->GetWorldPointVelocity(body0->GetWorldPoint(joint->relPoint0))
Я не очень понял, эта штука возвращает проекцию скорости на нормаль контакта в точке контакта?
Не очень понял что такое relPoint и что делает функция GetWorldPoint?

#141
7:23, 10 мая 2018

vindast
каждый джойнт характеризуется двумя точками крепления в локальной системе координат каждого из тел, на которые он воздействует. поэтому чтобы вычислить скорость сжатия амортизатора, надо вычислить относительную скорость этих самых точек в мировой системе координат, а потом спроецировать на ось действия амортизатора.

#142
6:28, 11 мая 2018

Suslik огромное спасибо за помощь.

Можно сказать что первый этап того что я хотел сделан.
В данный момент движ позволит сделать уже авто, надо будет только сделать классы двигателя и трансмиссии (благо, статьи тут есть), а силу трения на колесах посчитал в той старой теме, это будет удовлетворительно на данный момент (без джоинтов).

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

А затем надо будет сделать колижны для бокс-бокс, бокс-тримешь, бокс-цилиндр, цилиндр - тримешь, само собой свободно ориентированные.

А вот только за тем можно будет думать как делать честную подвеску.

#143
6:31, 11 мая 2018

vindast
> Потом решу задачу со звуком двигателя, это самое сложное что сейчас предвидится
хах. ты, конечно, можешь так считать, но скажу тебе по секрету — сделать честное трение, чтобы автомобиль не уезжал в сторону, если стоит на наклонной плоскости, будет, веротяно, гораздо сложнее, чем звук двигателя.

#144
6:34, 11 мая 2018

Suslik
Пугаете раньше времени)
Пока что я пойду по своему порядку, но скоро буду выть о помощи) Это точно.

#145
1:42, 25 мая 2018

#146
2:52, 25 мая 2018

vindast
гонялки на средней скорости — это хорошо, но самые сложные стресс-тесты — это езда на очень низкой и очень высокой скорости. например, что будет, если ты зажмёшь ручник на наклонной поверхности?

#147
(Правка: 13:51) 13:51, 25 мая 2018

Suslik
> очень высокой скорости
Там шляпа.
Suslik
> это езда на очень низкой
А на низкой есть баг в логике работы тормозов, поскольку момент тормозных усилий направлен против вращения колеса, получается что если колесо вращается медленно тормоза будут его разгонять то сюда, то туда.

#148
13:51, 25 мая 2018

Я пока работаю над этим.

#149
17:43, 25 мая 2018

Suslik, вот не могу разобраться (сделать как надо) с тем, как заставить колеса ( с учетом передаточных чисел) и мотор крутиться с одной скоростью. Может подскажете что?

Страницы: 19 10 11 1237 Следующая »
ПрограммированиеФорумФизика