Какая техника должна использоваться для сокращения 2-х проверок коллизии?

15
задан Spooky 19 June 2015 в 20:18
поделиться

3 ответа

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

можно экспериментировать с размером сетки для нахождения оптимума. Можно найти, что это зависит от того, сколько шаров Вы имеете.

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

7
ответ дан 1 December 2019 в 04:18
поделиться

Пространственное хеширование. См. страница Hugo Elias об этом .

7
ответ дан 1 December 2019 в 04:18
поделиться

Я второй метод Сетки. 2D моделирование шаров не извлечет выгоду из QuadTrees (которые обычно используются, когда у Вас есть сложная геометрия как символы и здания), или BSPs (который необходимо выбрать, если у Вас есть очень неравномерная дисперсия/концентрация объектов, как с областями высокой концентрации и низкими областями концентрации, в многопользовательской или стратегической игре)

2
ответ дан 1 December 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: