Проблемы производительности с большими статическими краями рельефа в Box2D - PullRequest
5 голосов
/ 22 мая 2011

Я бы хотел поддержать очень большие миры в игре, которую я создаю.Обычно это не проблема, потому что я могу отбраковать большую часть мира, так как он не виден сразу.Тем не менее, Box2D, похоже, не нравится моя идея!

В настоящее время моя местность состоит из около 1000 краевых фигур.Однако это само по себе работает нормально: даже после добавления только нескольких (~ 25) динамических объектов (маленьких кружков) производительность резко снижается!

  • Почему это происходит, динамическое деревоследует ли отменить все незатронутые статические формы ландшафта очень рано и без снижения производительности, не так ли?
  • (Как) я могу обойти это?

1 Ответ

1 голос
/ 21 марта 2017

Ответ в том, что формы ребер не сталкиваются с другими формами ребер.

Из руководства:

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

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

...