Я делаю космический шутер, который происходит в большом подземелье, которое состоит из больших прямоугольников для определения стен.Все в игре физически моделируется с использованием Farseer Physics.Однако есть одна проблема: я хочу, чтобы подземелье выглядело достаточно большим, но для этого необходимо, чтобы в моей сетке было как минимум 80x80 прямоугольников, а это означает, что в худшем случае у меня 6400 физически смоделированных тел, что не совсем точно.как вы можете догадаться, производительность.
Моим временным решением было разделить сетку на вертикальные слои, чтобы для каждого столбца все прямоугольники добавлялись с помощью логической операции добавления, а затем создавалось тело,используя полученный вогнутый многоугольник.Это немного повышает производительность, но полигоны имеют тенденцию портить, становиться несуществующими, блокировать пути, которые обычно должны быть отслеживаемыми или даже становятся недействительными и приводить к аварийному завершению Farseer.
Я думал осоздание какого-то алгоритма, который каким-то образом находит самые большие площади стен и объединяет их в один большой прямоугольник, и продолжает делать это для меньших прямоугольников, пока все отверстия не заполнятся, но я понятия не имею, как это реализовать.Кажется, это идеальное решение, потому что оно решило бы проблемы с производительностью, а также беспорядок вогнутых полигонов, который у меня сейчас есть.Кто-нибудь знает, как реализовать нечто подобное?
Это не решение вообще прекратить использование физического движка, потому что многие вещи в моей игре полагаются на него.
РЕДАКТИРОВАТЬ: Вот небольшой пример того, как тела сейчас выглядят: (каждое число является телом)
И вот как я хочу, чтобы они были: