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

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

Переменный шаг по времени:

  • Визуальные эффекты только частиц, основанные на физике (например, интегрирование скорости Верле с постоянным ускорением)
  • Другие визуальные вещи, основанные на физике, но не взаимодействующие со сценой.
  • Объекты основаны на этом простом уравнении: p_new(dt) = p_old + v * dt, где v — константа.
  • Объекты на основе этого уравнения: p(dt) = p_0 + v_0 * dt + 1/2 * a * dt^2, где v_o а a является константой.

Фиксированный временной шаг, физика + обнаружение столкновений.

  • Тряпичная кукла
  • Движение игрока основано на физике.
  • Стреляйте снарядами на основе физики.

Это нормально? Следует ли при обнаружении столкновений использовать фиксированные временные шаги?


person David    schedule 21.09.2016    source источник


Ответы (1)


Это нормально? Следует ли при обнаружении столкновений использовать фиксированные временные шаги?

Это зависит от вашего проекта. Если "визуальные объекты", которые вы описываете, ведут себя физически (т.е. испытывают силы от физических сил, взаимодействий или столкновений), то если они настроены на временной шаг, отличный от физического движка, у вас могут возникнуть проблемы. .

Но, поскольку они являются "визуальными элементами", и поэтому я предполагаю, что они не имеют решающего значения для игрового процесса, проблемы могут быть незаметными или могут быть достаточно редко, чтобы вашей игре это сошло с рук.

Другими словами, вы, конечно, можете попробовать... Но будет ли *"это нормально" (столкнетесь вы с проблемами или нет) зависит от проекта.


PS: Если вы хотите оптимизировать, есть вещи, которые окажут гораздо большее влияние (при условии, что вы их еще не оптимизировали).

Одним из основных примеров (если не основным) конкретной вещи, которая оказывает огромное влияние на производительность игры, является уменьшение draw calls. Но объяснять это или другие оптимизации здесь неуместно, поскольку это не вопрос, и есть много других вопросов и ответов здесь, на SO, а также на GameDev. которые уже обсуждают и отвечают, что это за оптимизации, почему они оказывают такое влияние и как их применять.

person XenoRo    schedule 21.09.2016
comment
Да, потому что мой визуальный материал полностью симулируется на графическом процессоре, и было бы катастрофой запускать несколько вызовов отрисовки, когда симуляция должна соответствовать фиксированным временным шагам...... Эта функция: p(dt) = emitterPos + v * dt совершенно безопасно для разных (переменных) временных шагов, но как насчет p(dt) = emitterPos + v * dt + 1/2 * a * dt^2? если скорость и ускорение (в данном случае сила тяжести) постоянны. - person David; 22.09.2016
comment
Да, чем меньше вызовов отрисовки, тем лучше. Я использую экземпляры, когда мне нужно нарисовать несколько систем частиц одного типа. - person David; 22.09.2016