Во многих гоночных играх (например, Burnout Paradise ), когда должно произойти столкновение, игровой процесс автоматически переключается на медленное движение и продолжается в медленной последовательности до тех пор, пока столкновение не будет завершено.
Я всегда думал, что это для эффекта. Вы не хотите пропустить ни одной части столкновения! Но один из моих друзей недавно предположил, что это сделано, чтобы убедиться, что при столкновении не требуется подавляющая скорость обработки.
Теперь я думаю, что на самом деле все наоборот. Когда происходит коллизия, очень много деталей показывается в замедленном режиме, я уверен, что на конвейере вычислений и рендеринга возникают накладные расходы.
Что правильно?
Увеличивает ли сцена замедленного движения использование процессора / графического процессора или уменьшает его?
Вполне возможно, что это может быть так. Если вы не делаете физику для столкновения на GPU, это означает, что для этого нужно присесть. Но с точки зрения самой физики ... это возможно.
Если вы моделируете движение нескольких тел, они имеют тенденцию двигаться очень предсказуемым образом. Силы и силовые поля (т.е. гравитация) легко предсказуемы. Куда движутся вещи, быстро вычисляется.
Прямо до тех пор, пока одно не достигнет другого. Видите ли, в физике у вас есть то, что называется временным интервалом; это количество времени, которое охватывает выполнение физической системы. Если ваш временной интервал покрывает 1/30 секунды (30 кадров в секунду для обновления физики), то каждое обновление физики перемещает объекты на 33,3 миллисекунды в будущее.
Когда объекты не конфликтуют, вы можете просто переместить их с самого начала что 33.3ms до конца. Физика для этого проста и хорошо известна в течение многих столетий. Вы просто определить ускорение от чистых сил, применять это ускорение для кванта времени до объекта, и переместить его на своей новой скорости (примечание: это может быть более сложным, если вы хотите большей точности).
Проблема заключается в том, когда объекты сталкиваются. Внезапно, теперь вы должны физики процесса сил в виде кванта времени, а не только один раз в самом начале. Если объект сталкивается дважды или три раза в течение физики кадра, то это больше физических вычислений вы должны повторить.
Если у вас есть много столкновений в течение одного кванта времени, вы можете действительно убить фреймрейт. Тем не менее, вероятность многократных столкновений в пределах кванта времени уменьшается по мере размер кванта времени уменьшается. Лидирующие гоночные симы, как Forza и Gran Turismo запустить свои системы физики с невероятной частотой кадров. Я думаю, что один из них получает до 300 кадров в секунду + на их обновление физики.
Замедленное является эффективным эквивалентом этого. Уменьшая физику квант времени без увеличения также рендеринг кадров , чтобы компенсировать это , мир кажется медленнее. И поэтому, вы сделать это гораздо менее вероятно , что вы получите несколько столкновений в кванта времени.
Это, как говорится, я сомневаюсь, что именно поэтому игры, как это идет в замедленном движении. В общем, это больше для визуального чутье и драматических представлений. Эти системы физики обычно могут справиться с этим, производительность мудрым.
источник
Прежде всего, это сделано для визуального эффекта, а не из соображений производительности.
Стандартный способ работы с производительностью в физике тяжелых игр в масштабе числа объектов, масштаб сложности объекта, и возиться с настройками двигателя в масштаб между моделированием точностью и производительностью. Если есть проблемы, вы бы бросить то, что вы воспринимаете, чтобы быть наименее значимые функции.
Не забывайте, однако, промышленность сделала довольно реалистичные игры автомобиля за последние ~ 15 лет, с современными компьютерами, это не так, как они должны сократить до 3 колеса, чтобы получить вещи работает.
Проблема:
Это правда , что столкновение может вызвать дополнительную работу, сколько во многом зависит от специфики игры, более детальная физика двигателя будет иметь много мелких столкновения между различными частями , которые могут представлять собой значительное увеличение требуемого вычисления , Но следует принимать во внимание , когда физика масштабируется, это не проблема , чтобы получить хорошую физику , которая все еще может обрабатывать несколько столкновений.
Если вы просто запустить моделирование физики медленнее, чтобы получить медленное движение нагрузка упадет пропорционально. Тем не менее, следует отметить, что требования к физике медленного движения и в режиме реального времени разные, вы можете позволить себе иметь более низкую точность, когда материал случается в гонках скорости. До тех пор, пока игрок не замечает, что физический движок является неправильным это не является большой проблемой, медленное движение делает промахи гораздо легче поймать, таким образом, медленное движение имеет более высокое требование точности.
Можно выбрать, чтобы использовать ту же физику, масштабируется для удовлетворения обоих наборов требований. Это решение потребует некоторой дополнительной вычислительной мощности, но это легко осуществить и с учетом современных компьютеров вполне жизнеспособным.
Переключение параметров физики является более сложным, но потенциально может привести к некоторым великолепным столкновениям, может не только один увеличить точность, также можно переключать физические модели своих автомобилей для более подробно те, которые перерыв в более реалистической манере. Этот режим должен в конечном итоге, используя примерно одинаковое количество процессорного времени для физики, как нормальный режим, просто потому, что они оба масштабируется, чтобы работать на одной и той же конфигурации minspec.
Средний путь заключается в использовании физического движка шага переменного, тем, в общем случае увеличения точности, когда вы замедлить моделирование, решая таким образом, по крайней мере часть проблемы. Есть и другие причины, чтобы не использовать физику переменного шага, но переменный шаг по-прежнему довольно распространен в промышленности.
источник