Libgdx || Box2D Отбор кузова?

Сейчас я занимаюсь разработкой небольшого сканера dunguen, и, поскольку у меня на рабочем столе всего 200 кадров в секунду, мне действительно нужно исправить мой код:). Моя игра использует алгоритм для создания разных уровней с разными комнатами и так далее. Поскольку у комнат есть стены, я делаю петли через них и создаю тела. На карте 50х50 теперь много тел, и все они рассчитываются и отображаются одновременно:(. Я также использую Box2d Lights и rayhandler для создания теней, каждое тело отбрасывает тени:)

Есть ли способ реализовать отбраковку усеченного конуса? И если да, то как:) Есть примеры кода? Есть ли другие способы улучшить частоту кадров на теле?

Спасибо за ваше время и внимание:)

2 ответа

Решение

Я знаю, что этот вопрос немного стар Но, похоже, это первый хит, связанный с отбраковкой frustum с помощью box2d и / или libgdx. И поскольку я создал учебник по этому вопросу, я хочу опубликовать его здесь, пусть будущие нуждающиеся люди смогут его использовать

http://erqdev.com/2017/02/26/frustum-culling-with-box2d/

Я думаю, что наибольшее влияние на производительность в вашей настройке оказывают box2dlights (но, чтобы убедиться, что вы должны выполнить некоторое профилирование). Box2dLights фактически имеет логику отбраковки, которая не идеальна, но выполняет некоторые базовые функции. Для повышения производительности box2dlights вы можете:

  • Уменьшить количество лучей
  • Уменьшить размер RayHandler FBO
  • Установите некоторые источники света на Рентген (не отбрасывает тени)
  • Уменьшите количество объектов (например, объедините небольшие куски стены или что-то)
Другие вопросы по тегам