![]() |
Траектории взаимодействий физ.объектов(Nape, Box2D) оптимизация
Всем привет!
Есть некая сцена с падающими по разным траекториям физ объектами. Задача: отрисовать траектории объектов сцены до того как они начнут непосредственно взаимодействовать) После запуска симуляции нарисованные траектории и движения объектов должны совпадать. Cейчас для просчета и симуляции используется Nape(в Box2D на просчет уходит в 10 раз больше времени, 300ms против 30); Просчет производится следующим образом создается копия сцены со всеми объектами ускоряется симуляция space.step() в цикле и относительно позиций объектов рисуются траектории в спрайте. По окончанию цикла объекты удаляются и запускается симуляция физики уже в реальном времени. Объекты повторяют нарисованные траектории т.к. сцены идентичны. Все вроде бы хорошо. НО! Проблема в том что есть объекты учитывающие положение курсора мыши, и соответственно траектории должны быть изменены на каждую новую позицию. На каждый перепросчет уходит по 30 ms, и в динамике это выходит очень много. Вопрос: Как можно оптимизировать данную процедуру? Чтобы снизить время просчета хотя бы до 1-2 ms. Есть идеи? Спасибо! p.s. Восстановление положения объектов на старте вместо повторного создания ускоряет процесс на ~10 ms, но появляются большие погрешности т.к. объекты участвуют в симмуляции на момент восстановления и их позиции варьируются на каждый step. |
Да ни как. Ваш мир должен же пересчитаться, а на это в любом случии будет уходить время. Я бы извротился в другую сторону. У вас есть 2 сцены одна визуализатор, другая симулятор (рабтает в 20 раз быстрее), после окончания работы симулятора замисываеш траекторию, и опять запускаеш, а после второго цыкла визуализируеш красиво изменение траэкторий, ну и так далие. Так же на втором и после цикле работы симулятора не создаюш заново объекты а возвращаеш старые обьекты в позиции визуализатора. Так же не рекомендую space.step() запихивать в цикол, будут дергания, просто у тебя должн симулятор работать в 20-100 раз быстрее визуализатора. ХЗ это мою мнение.
|
Не совсем понял.
Цитата:
Цитата:
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 00:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.