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

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

Страницы: 110 11 12 1337 Следующая »
#150
(Правка: 19:22) 17:53, 25 мая 2018

Я сейчас подкидываю момент сил трения в зависимости от разности скорости вращения.


#151
21:40, 25 мая 2018

vindast
я писал только motor joint'ы для шаговых двигателей, электрических. но если бы писал для ДВС, то сделал бы так: хранил бы внутреннее состояние двигателя как угловую скорость вращения коленвала. если сцепление выжато, то джойнтом передачи соединил бы угловую скорость дифференциала колёс с этим коленвалом. то есть джойнт на три тела, одно из которых существует только внутри джойнта. все правила — те же самые.

рекомендую начать просто с реализации дифференциала.

#152
0:16, 26 мая 2018

Suslik, Вы переоценили мои способности.
Там джоинтов внутри машины нет никаких.
Я сейчас считаю трение на сцеплении как (скорость вала двигателя - скорость вращения со стороны коробки) * базовую силу * степень сжатия сцепления.
Но при таком подходе возникает проблема как с тормозами, когда скорости почти сравнялись сила териня начинает быть обращенной то туда то сюда.

#153
6:55, 30 мая 2018

Начал делать collision detection, но что-то сложно.
Решил начать с obb vs obb, со сферами и неориентированными боксами понятно.
В общем саму коллизию нахожу нормально (вроде как), проблема начинается тогда, когда я пытаюсь найти точки контакта.
Пытался читать Ваши туториалы по support mapping и collision detection, но там полетели картинки, и не очень все от того понятно.

#154
7:32, 30 мая 2018

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

vindast
> Пытался читать Ваши туториалы по support mapping и collision detection, но там полетели картинки, и не очень все от того понятно.
отстойно. когда я писал статью, imageshack казался железобетонным хостингом, который никогда не сможет упасть.

#155
16:40, 30 мая 2018


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

#156
16:46, 30 мая 2018

Вот до того как принялся делать obb vs obb был уверен в том что этот случай вообще решен точно кем нибудь умным...

#157
16:49, 30 мая 2018

Suslik
> это ж самое интересное. обычно этот код просто воруют откуда-то и не парятся,
> как он работает.
Замутил свой код )

#158
17:05, 30 мая 2018

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

#159
9:55, 1 июня 2018

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

#160
9:58, 1 июня 2018

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

#161
10:06, 1 июня 2018

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

#162
10:08, 1 июня 2018

особенно волнует случай с лежанием обьектов друг на друге.

#163
10:11, 1 июня 2018

Вот что сейчас получается.
На видео, за нормаль контакта принят Y-вектор одного из тел, потому они и рассыпаются когда появляется вращения.

#164
16:22, 1 июня 2018

vindast
> Я вот подумал просчитать скорости встречи боксов в каждой точке контакта,
> приняв ее (нормализированую) за нормаль контакта. Но есть "но"
это полная ерунда

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

в общем случае для любых выпуклых геометрий план такой:
- найти ось минимального проникновения (minimal translation distance). эта ось будет нормалью для всех контактов.
- на каждом из тел найти область поверхности, нормали которой находятся в пределах небольшой погрешности от найденной оси.
- волшебным образом найти пересечение этих областей, представив его множеством точек — это и будут точки контактов.

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