Физика для игрФорум

Collision Detection для геометрий, заданных SupportMapping'ом (комментарии) (7 стр)

Страницы: 13 4 5 6 7 8 Следующая »
#90
21:57, 16 апр 2013

Спасибо! А что насчет 4 вопроса?

#91
22:51, 16 апр 2013

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

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

#92
11:15, 17 апр 2013

по третьему попробую.
по четвертому - это у меня проблемы с терминологией)

Вопрос был про то, сколько регистрировать именно фактов контакта. из статья я понял следующее:
при контакте двух боксов регистрируется две точки контакта. причем по две на каждом боксе. далее я отправляю на обсчет в итоге 4 точки - 2 для одного бокс и две для другого. плюс сохраняю pd и глубину контакта. так вот вопрос про то, правильно ли я делаю - или нужно в данном случае только две точки, а не четыре?

#93
19:23, 17 апр 2013

каждая точка контакта - это по сути две точки - одна на одном боксе и вторая на втором. манифолд для 2д боксов состоит из двух точек контакта.

#94
21:06, 17 апр 2013

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

#95
21:18, 17 апр 2013

да, верно

#96
21:28, 3 мая 2013

Вроде добился более-менее нормальной работы (самый большой прирост дало сохранение предыдущго вектора). Хотел спросить насчет касательной (SA при поиске v вспомогательной задачи). Я ее нахожу как перпендикуляр к v, но гложат сомнения. Предполагаю что для много гранника ее лучше находить как прямая проходящая через вершины.

#97
0:07, 4 мая 2013

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

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

#98
16:35, 4 мая 2013

Ясно. Тогда другое мое сомнение - саппорт вектор многогранника ищу путем перебора вершин - по идее это лучше переделать? например выводить ф-ю для определения вершины по наклону v И повороту тела?

#99
19:01, 4 мая 2013

по идее в 3д есть оптимизация hill climbing, когда ты не все вершины перебираешь, а идёшь по списку соседей в оптимальном направлении. в 2д и так направления всего два, особо не поможет. можешь попробовать сохранять предыдущую вершину при взятии саппорт вектора и в следующий раз начинать поиск с неё, но это скорее поможет, если их много.

#100
19:16, 4 мая 2013

Тоже думал про сохранение, но видимо для видимого прироста надо будет для каждого контактирующего тела сохранять индекс, может поможет. Сделаю swep and prune, посмотрю по скорости

#101
19:30, 4 мая 2013

fysx
а у тебя вообще есть broad phase? ты сначала aabb проверяешь?

#102
20:31, 5 мая 2013

Добавил Broad phase, заметного прироста не вижу (с учетом того что тел всего 4, одно статично, и aabb размер не меняет).

#103
21:28, 5 мая 2013

4? тестируй хотя бы на 400.

#104
22:05, 5 мая 2013

Он и на 4 то тормозит страшно. Видны тормоза, когда круг слева падает с прямоугольника

Страницы: 13 4 5 6 7 8 Следующая »
Физика для игрФорум

Тема в архиве.