Проект SmoothVideo использует кадровую интерполяцию для увеличения частоты кадров видео с 24 до 60. Результаты впечатляют . Мне было интересно, если это можно применить, и будет ли это хорошо выглядеть в видеоиграх?
Он использует гораздо меньше ресурсов, чем рендеринг всех фреймов, поэтому позволяет рендерингам нижнего уровня рендериться с качеством гораздо лучших риггов при некотором уровне компромисса. Я знаю, что он не будет таким точным и немного увеличит задержку ввода, так как он должен держаться за самый новый кадр, чтобы иметь возможность генерировать и вставлять интерполированный кадр. Это не так плохо, как полный кадр, хотя, по моим соображениям, только задержка будет временем интерполяции плюс половина оригинального времени обновления fps. Таким образом, для 30 кадров в секунду это будет 33 мс / 2 + время интерполяции.
Возможно, это отставание сделает его непригодным для быстрых игр от первого лица, но я сомневаюсь, что это будет помехой в играх с более медленными темпами.
Задержка становится ниже при более высоких начальных скоростях, поэтому я думаю, что это будет, безусловно, того стоить при переходе от 60 кадр / с до 100 + кадр / с, что улучшает восприятие, хотя и незначительно, но в то же время крайне обременительно для системы.
источник
Ответы:
Система по этим направлениям была использована в The Force Unleashed . Я не знаю других названий, которые использовали это все же.
источник
Да, это возможно, но не без осложнений.
В то время как интерполяция кадров может работать в режиме реального времени на видео, это не обязательно относится к видеоиграм. Даже при том, что это обрабатывает видео в реальном времени, программное обеспечение способно «смотреть вперед» на следующий кадр. Это довольно важный компонент интерполяции. Здесь проблема вступает в игру с играми. В большинстве случаев следующий следующий кадр еще не визуализирован! Таким образом, программное обеспечение не знает следующую точку в интерполяции.
Безусловно, есть возможность запустить игру за кадром или двумя, чтобы дать вашей программе интерполяции те кадры, с которыми она должна работать. Тем не менее, это не работает так же хорошо для интерактивных медиа. Теперь то, что показывается на экране, задерживается от получения ввода. Это усложняет обработку ввода и обеспечивает хорошую отзывчивость к игре. Это похоже на искусственное отставание в производительности. Кроме того, он вряд ли будет иметь встроенную поддержку в любом из основных игровых движков, что означает написание собственного.
источник
Да, это не только возможно, но и доступно сейчас: подключите игровой ПК / консоль к телевизору, использующему интерполяцию движения . Мнения различаются, и это менее подходит для игр с подергиванием, таких как FPS, из-за задержки интерполяции, но для увеличения частоты кадров от 60 до 120 Гц это работает отлично.
Что касается того, может ли это быть сделано в самой игре, пока нет достаточного импульса, так как большинство мониторов не могут выводить эти высокие частоты кадров. Мониторы 120 + Гц для компьютеров встречаются реже, хотя, судя по тому, как работают телевизоры, это может произойти в ближайшее время. Наличие монитора с высокой частотой обновления имеет преимущества даже в том случае, если игра не может достичь этих частот: помимо вышеупомянутой телевизионной интерполяции движения, он может предлагать более плавные кадры, если в игре разрешено выводить кадры в том виде, в котором они готовы, вместо синхронизации до аля v-sync. Как только мониторы с частотой 120 Гц станут обычным явлением, я ожидаю, что разработчики игр наверстают упущенное и начнут использовать дополнительные приемы, включая интерполяцию движения, для достижения этих высоких частот кадров.
источник
Промежуток между тем, когда пользователь что-то делает, и тем, когда результат появляется на экране, никогда не должен превышать 100 мс, иначе пользователь может заметить задержку.
Монитору пользователя может потребоваться около 30 мс для отображения полученного изображения. Доступны гораздо более быстрые мониторы, но многие обычные пользователи не имеют их. Если видеокарта вычисляет 30 кадров в секунду, для расчета кадра требуется 33 мс. Я предполагаю 30 кадров в секунду, потому что нам не нужна интерполяция кадров, если игра уже работает на скорости 60 кадров в секунду. Если мы используем тройную буферизацию, это удваивается до 66 мс. Это 90 мс.
Я думаю, нам нужна тройная буферизация для интерполяции кадров, чтобы иметь смысл. Таким образом, если мы используем кадровую интерполяцию для получения 60 кадров в секунду, мы увеличиваем задержку на один 60Гц кадр, что составляет еще 17 мс + время интерполяции X, что приводит к 107 мс + X. Проблема не в том, что интерполяция такой, но тот факт, что мы уже близки к точке, где задержка заметна, прежде чем мы введем интерполяцию.
Вероятно, это было бы хорошо для игры, которая в основном представляет собой виртуальный фильм, но в FPS пользователи заметят, что с прицеливанием что-то не так.
источник