![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Всем привет!
Есть некая сцена с падающими по разным траекториям физ объектами. Задача: отрисовать траектории объектов сцены до того как они начнут непосредственно взаимодействовать) После запуска симуляции нарисованные траектории и движения объектов должны совпадать. Cейчас для просчета и симуляции используется Nape(в Box2D на просчет уходит в 10 раз больше времени, 300ms против 30); Просчет производится следующим образом создается копия сцены со всеми объектами ускоряется симуляция space.step() в цикле и относительно позиций объектов рисуются траектории в спрайте. По окончанию цикла объекты удаляются и запускается симуляция физики уже в реальном времени. Объекты повторяют нарисованные траектории т.к. сцены идентичны. Все вроде бы хорошо. НО! Проблема в том что есть объекты учитывающие положение курсора мыши, и соответственно траектории должны быть изменены на каждую новую позицию. На каждый перепросчет уходит по 30 ms, и в динамике это выходит очень много. Вопрос: Как можно оптимизировать данную процедуру? Чтобы снизить время просчета хотя бы до 1-2 ms. Есть идеи? Спасибо! p.s. Восстановление положения объектов на старте вместо повторного создания ускоряет процесс на ~10 ms, но появляются большие погрешности т.к. объекты участвуют в симмуляции на момент восстановления и их позиции варьируются на каждый step.
__________________
uglan |
|
|||||
|
Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
|
Да ни как. Ваш мир должен же пересчитаться, а на это в любом случии будет уходить время. Я бы извротился в другую сторону. У вас есть 2 сцены одна визуализатор, другая симулятор (рабтает в 20 раз быстрее), после окончания работы симулятора замисываеш траекторию, и опять запускаеш, а после второго цыкла визуализируеш красиво изменение траэкторий, ну и так далие. Так же на втором и после цикле работы симулятора не создаюш заново объекты а возвращаеш старые обьекты в позиции визуализатора. Так же не рекомендую space.step() запихивать в цикол, будут дергания, просто у тебя должн симулятор работать в 20-100 раз быстрее визуализатора. ХЗ это мою мнение.
|
|
|||||
|
Не совсем понял.
Цитата:
Цитата:
Цитата:
Цитата:
__________________
uglan |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:48. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| nape , траектория , физика |
|
|