Изменение настроек Farseer Physics Engine для улучшения производительности

Я успешно использовал Farseer для разработки одной из моих игр с использованием XNA. Игра работает как шарм в Windows и WP7. В настоящее время я работаю над переносом моей игры в IOS, используя Monotouch и Monogame. Я успешно скомпилировал и использовал Farseer также над первой версией моей игры, портированной через Monotouch и Monogame. Все работает хорошо, за исключением производительности. Игра работает намного медленнее на устройстве iPhone. Я провел некоторые исследования кода, и кажется, что основным узким местом является Farseer. Он становится очень медленным, когда ему приходится управлять более чем 5-6 телами с одним прикрепленным приспособлением (кругом).

Читая документацию, я заметил, что для настройки Farseer я могу изменить значения в статическом классе Setting:

Производительность

Для того, чтобы получить максимальную отдачу от движка, вы должны попытаться следовать следующим рекомендациям:

Включить сон Сон позволяет вам иметь большое количество тел в мире. Он также может повысить стабильность движка, поскольку небольшие движения в стопке тел не распространяются в стопке. Спящее тело имеет небольшие накладные расходы, поэтому рекомендуется его включить.

Отключить CCD Непрерывное обнаружение столкновений предотвращает туннелирование, но ценой снижения производительности. Если у вас нет проблем с туннелированием, вам следует отключить CCD совсем.

Минимизировать число итераций положения и скорости Большое число итераций делает двигатель более стабильным за счет снижения производительности. Вы должны подстроить эти значения под вашу игру.

Плохая новость заключается в том, что если я изменю любое значение этого класса, ничего не произойдет. Я пытался изменить значения следующим образом:

EnableDiagnostics = false
VelocityIterations = 6
PositionIterations = 2
ContinuousPhysics = false

Я пробовал также с меньшими значениями, например VelocityIterations = 1, но ничего не изменилось.

Кто-нибудь уже менял значения класса Settings для улучшения производительности?

6
задан Michael J. Barber 28 November 2011 в 09:20
поделиться