Какое приспособление использовать для частиц в Box2d?

#box2d #game-physics

#box2d #игра-физика

Вопрос:

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

Кто-нибудь знает, какое приспособление лучше всего использовать для каждой частицы? Точка без размеров и объема кажется лучшим выбором, но, похоже, в box2d ее не существует. Какая другая форма приспособления потребляла бы меньше процессора?

Я использую Box2dWeb, порт box2d на JavaScript, но я не думаю, что это имеет большое значение, поскольку все порты Box2d должны быть похожи, верно?

Ответ №1:

Недавно выпущенный Google LiquidFun поддерживает частицы и является расширением box2d.

http://google.github.io/liquidfun/

Ответ №2:

Если вам нужны полноценные тела, лучшее, что вы можете сделать, — это приспособление малого круга.

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

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