Мягкие тела в Bullet'e
Здравствуйте снова.
Столкнулся с проблемой - необходимо ловить столкновение твердого тела с мягким. В хелпе баллета для этого приведена функция: int btSoftBodyCheckContactAABB (int softbody, int body, float shiftAABВ) Параметры: softbody - мягкое тело. body - физическое тело. shiftAABB - значение увеличения ограничивающего контейнера. Описание: Проверяет тело на пересечение контейнера. Возвращает 1 если пересечение найдено, в противном случае 0. Меня смутил последний параметр. Что нужно в нем указывать? |
Ответ: Мягкие тела в Bullet'e
судя по названию смещение axis aligned bounding box. судя по типу параметра - равномерное увеличение AABB на заданное значение. чем больше - тем больше вероятность, что пересечение сработает. но могут быть лжесрабатывания.
|
Ответ: Мягкие тела в Bullet'e
Буллет произносится как буллет.
|
Ответ: Мягкие тела в Bullet'e
Спасибо. Попытался реализовать - наткнулся на то, что буллет (пусть будет буллет, вам лучше знать=) очень странно обрабатывает столкновения мягких тел и твердых. Оставил проблему на потом.
|
Ответ: Мягкие тела в Bullet'e
teuzet, возможно, ты толком не понимаешь что такое AABB. Поставь в режиме дебагдравера значение 2 ( DBG_AABB ). Это и есть контейнеры по которым производится обнаружение контактов с помощью данной функции: проверяется положение всех нодов(вершин) мягкого тела на нахождение в контейнере тела переданного во втором параметре.
Для точного определения коллизий есть функции: Код:
btSoftBodyGetNumRContacts%(softBody%) p.s. складывается такое впечатление что симуляция мягких тел еще не вышла за рамки экспериментальных. |
Ответ: Мягкие тела в Bullet'e
|
Ответ: Мягкие тела в Bullet'e
Coks, спасибо большое. Наглядно и просто все оказалось=) Теперь можно снова засесть за проблему. По-видимому, придется слегка извратиться...
|
Часовой пояс GMT +4, время: 19:13. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot