Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Помогите написать физический движок :) (12 стр)

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

Страницы: 111 12 13 1430 Следующая »
vindastПостоялецwww2 июня 20183:43#165
Suslik
> найти ось минимального проникновения (minimal translation distance). эта ось
> будет нормалью для всех контактов.
Помогло, но не все оказалось так просто)
Нужно еще с направлением нормали контакта (имеется в виду положительное или отрицательное).

Вот что вышло.
Масса брусков 1500, масса машинки тоже.

vindastПостоялецwww3 июня 201810:45#166
Suslik
> сделать честное трение
кхе кхе кхе

vindastПостоялецwww5 июня 201820:58#167
Suslik, Вы в своей статье упомянули про ассиметричный тензор инерции. Эта штука мне не ясна. Допустим, я нашел моменты инерции по осям тела. А вот как из них получить момент для джоинта мне не ясно.
Поможете?

Правка: 5 июня 2018 21:12

vindastПостоялецwww5 июня 201822:10#168

И еще один вопрос. А можно как нибудь вытянуть плоскость пересечения до нахождения точек пересечения?
По идее нормаль плоскости  это и есть
Suslik
> ось минимального проникновения
А вот как вытащить точку на этой плоскости?

Правка: 5 июня 2018 22:10

SuslikМодераторwww6 июня 20182:37#169
vindast
по тензорному исчислению советую что-нибудь почитать за пределами моей статьи. можно начать со статьи по тензору инерции на википедии.

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

Правка: 6 июня 2018 2:38

vindastПостоялецwww6 июня 20182:44#170
Suslik, Вы не поняли идею, я хочу найти сечение каждого объекта одной плоскостью, что дешевле чем сейчас, а сейчас это 2 * 6 плоскостей * 12 прямых.
Эта точка нужна только для того что бы задать плоскость по нормали и точке.

vindastПостоялецwww10 июня 201814:19#171
Suslik, я не могу найти разделяющие оси для цилиндра и треугольника.
Я беру 3 вектора от цилиндра ( его базис), три перпендикуляра к сторонам треугольника ( лежат в его плоскости) и нормаль этой плоскости.
Так же беру векторные произведения этих перпендикуляров, нормали с базисом цилиндра, но этого не достаточно, иногда они "пересекаются", когда, очевидно, что этого пересечения нет.

Что я делаю не так?

SuslikМодераторwww10 июня 201814:24#172
vindast
когда обнаруживается контакт, которого на самом деле быть не должно, то подумай, чем именно образована разделяющая ось. в общем случае кандидаты на разделяющие оси — это любые прямые, которые могут быть кратчайшим расстоянием при некоторой ориентации взаимодействующих тел. ты же их, судя по всему, выбрал вообще от балды, потому что ни одна из 6 осей, которые ты описал, под этот критерий не подходят, лол. могу сразу сказать. что искать коллижены для цилиндра — боль. гораздо проще искать для капсулы.
vindastПостоялецwww10 июня 201814:29#173
Буду думать, эх.
Есть еще проблема. Что делать с тем, что проекция у треугольника на его нормаль 0?

Правка: 10 июня 2018 14:29

SuslikМодераторwww10 июня 201814:34#174
vindast
> Что делать с тем, что проекция у треугольника на его нормаль 0?
тебя это вообще не должно волновать. для поиска одномерного пересечения(проекций) используются только функции min и max.
vindastПостоялецwww10 июня 201814:35#175
Я уже про глубину проникновения для псевдоскоростей.
vindastПостоялецwww10 июня 201814:35#176
Там получается 0 в некоторых случаях.
SuslikМодераторwww10 июня 201814:36#177
vindast
аналогично, делений там нет. представь себе, что у тебя два одномерных отрезка : [cht][a_0, a_1], [b_0, b_1][/cht]. для того, чтобы найти длину их пересечения, тебя не должно интересовать, вырождены ли они.

Правка: 10 июня 2018 14:37

vindastПостоялецwww10 июня 201814:37#178
Тела начинают проваливаться друг в друга при минимальной длине проекции равной нулю.
vindastПостоялецwww10 июня 201814:38#179
В том то и дело, что их общая длина может быть 0.
Страницы: 111 12 13 1430 Следующая »

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

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