![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2011
Сообщений: 18
|
Работаю с объектным пулом. Все объекты пресоздаются, по необходимости достаются, активируются, умирая отправляются обратно в пул. Всё как положено. Однако физ тела, создаются при активации. И удаляются при деактивации. Со всем накладными расходами. Вот и вопрос как этого избежать. activate=false, есть решение? или висящие, даже в неактивном виде объекты являются просадой по производительности? Как минимум потому что они в общем списке тел, и каждый Step по ним идёт итерация?
__________________
_____ Почему-то перманентно чувствует себя лезущим куда-то не туда занудой. Тяжёлый случай. >.< |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Jun 2011
Сообщений: 18
|
Цитата:
неблагодарное это дело, времени кушать много будет. Вот поэтому, лишние 100-200 неактивных тел, держать не хочется... А создавать каждый раз, малость противоречит идее пула.Кстати, вы не правы. Для статических тел физика считается. Но только с динамическими. Между собой статические не обсчитываются. А вот флаг active=false - судя по рефференсу, и по опыту, отключает рассчёты. Но это тоже полумера. Вот думал,может кто знает как корректно работать с телами. Возможно, их можно создавать минуя CreateBody, И просто подцеплять в список тел. Может им ещё что- то нужно. Кто-то знает?
__________________
_____ Почему-то перманентно чувствует себя лезущим куда-то не туда занудой. Тяжёлый случай. >.< |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
|
|
|||||
|
Регистрация: Jun 2011
Сообщений: 18
|
Цитата:
Пока я создал времянку-функцию AddBody() в b2World-е... Которая работает почти так же как и Create, но пропускает момент создания тела получая его извне. Да, таким образом действительно получается нормально кэшировать физ тела, не теряя производительность даже на 1000 предсозданных тел. В отличии от SetActive они не присутствуют в общем списке тел, сответственно не отрисовываются DebugDraw и не едят процессорное время. только память. Багов пока не наблюдаю. Я посмотрел код, вроде там ничего горбить и не должно. Ибо на С++ строжайше запрещали создавать тела иначе как через вызов CreateBody()... Во всяком случае мне помнится такое...
__________________
_____ Почему-то перманентно чувствует себя лезущим куда-то не туда занудой. Тяжёлый случай. >.< |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|