Чи може інтерполяція кадрів на зразок проекту SmoothVideo стати варіантом для збільшення частоти ігор без великого хіта на продуктивність?


11

Проект SmoothVideo використовує інтерполяцію кадрів, щоб збільшити кількість кадрів в секунду відео з 24 до 60. Результати є досить вражаючими . Мені було цікаво, чи можна це застосувати і чи добре це виглядатиме у відеоіграх?

Він використовує набагато менше ресурсів, ніж візуалізація всіх кадрів, тому дозволить рендерингу нижнього кінця рендерувати за якістю набагато кращих платформ на певному рівні компромісу. Я знаю, що це не буде настільки точно, і дещо збільшить затримку введення, оскільки це потрібно, щоб утримати найновіший кадр, щоб можна було генерувати та вставляти інтерпольований. Це не так погано, як повний кадр, хоча, на мій міркування, лише відставання буде часом інтерполяції плюс половина початкового часу оновлення кадрів у секунду. Отже, для 30 кадрів в секунду це було б 33 мс / 2 + інтерполяційний час.

Можливо, це відставання зробить його непридатним для швидких минулих ігор від першої особи, але я сумніваюся, що це буде перешкодою для ігор з повільнішими темпами.

Відставання стає нижчим при більш високих стартах, тому я вважаю, що це, безумовно, варто того, коли перейти від 60 кадрів в секунду до 100 + кадрів в секунду, що покращує досвід, хоча і дещо незначно, в той час як є надзвичайним оподаткуванням системи.


У певному відношенні це вже робиться з розмиттям руху. Нестача отриманих даних про рух (описана в деяких відповідях) вирішується за допомогою вже відомих рухів об’єктів. Єдина відмінність полягає в тому, що замість плавної інтерполяції рендері роблять кілька інтерполяцій і створюють їх поєднання. Інтерполяція, як ви описали, ймовірно, не використовується, оскільки оклюзія змінюється, і це створює небажаний результат.
транзистор09

Відповіді:


6

Система за цими лініями була використана в The Force Unleashed . Мені невідомі інші заголовки, які хоч і використовували його.


1
Дякую за інформацію. Знайдено публікацію на ньому: dl.acm.org/citation.cfm?id=1837047 Це здається успішним, так чому ж він не бачив широкого використання?
кібербіст

Переважно з причин, викладених у відповіді Byte56: це не без недоліків, і в багатьох випадках ці недоліки не варті того, враховуючи, що є й інші способи досягнення більш високих частот кадрів.

1
Відповідно до цієї статті, використовуючи передбачувальну інтерполяцію, цей метод може насправді зменшити затримку! eurogamer.net/articles/… Отже, це здається кращим у всіх показниках. Але чогось повинно бути відсутнім, як ви могли б подумати, що воно було б використане скрізь, якби це було правдою.
cybrbeast

@David: стаття означає, що вона зменшує уявну затримку порівняно з роботою на 30 кадрів в секунду, для певних типів введення. Робота зі штатною швидкістю 60 кадрів в секунду все ще є кращою, коли це можливо (краща затримка та відсутність артефактів інтерполяції), тому багато розробників вважають, що ціль їх першого вибору. Коли ігри не досягають 60 кадрів в секунду, не завжди залишається достатньо часу або бюджету, щоб створити систему інтерполяції, щоб згладити прогалини - ця система є досить складною, і, у випадку TFU, допомагають деякі аспекти їх конвеєрної передачі, які не є повсюдно ділиться всіма іграми.
DMGregory

Я намагався сказати краще в усіх показниках порівняно з 30
невідомими

9

Так, це можливо, але не обійшлося без його ускладнень.

Хоча інтерполяція кадрів може працювати у режимі реального часу на відео, це не обов'язково так, як це стосується відеоігор. Незважаючи на те, що це обробка відео в режимі реального часу, програмне забезпечення здатне "дивитися вперед" до наступного кадру. Це досить критична складова інтерполяції. Саме тут питання вступає в гру з іграми. Здебільшого наступний наступний кадр ще не виведений! Тож програмне забезпечення не знає наступного моменту інтерполяції.

Звичайно, існує можливість запуску гри на кадр або два позаду, щоб надати вашому програмному забезпеченню для інтерполяції ті рамки, з якими він повинен працювати. Однак це не дуже добре для інтерактивних медіа. Тепер те, що відображається на екрані, затримується з отриманого входу. Це робить речі більш складними для обробки вхідних даних та забезпечення хорошої чуйності до гри. Це як будівництво у штучному відставанні від продуктивності. Крім того, навряд чи мати вбудовану підтримку в будь-якому з основних ігрових двигунів, а це означає писати свій власний.


Будь-яка реакція на цей розумніший метод інтерполяції, згаданий нижче, який стверджує, що запобігає збільшенню затримки? eurogamer.net/articles/…
cybrbeast

У такому випадку застосовується насамперед заключне речення. Я не впевнений, наскільки їхня технологія відхилила цю особливість. Можливо, знадобилося значно більше роботи, щоб не порушити інтерполяцію, або це могло "просто запрацювати". Я думаю, якби це був останній, ми можемо побачити, що він з'являється в деяких основних двигунах (якщо він не запатентований). Я не впевнений, що лише ця функція варта створити і підтримувати власний двигун.
MichaelHouse

Невпевненість у твердженні, що запуск кадру позаду є головною перешкодою для інтерактивності. Будь-які багатокористувацькі ігри, що використовують авторитетну серпозну інтерполяцію між останніми двома оновленнями, часто демонструють більший відставання, але це включає деякі найшвидші ігри з шутерами. Нам також не обов’язково потрібен наступний кадр для побудови проміжних продуктів в іграх, тому що, на відміну від відео, ігри можуть генерувати маску об'єкта "основна правда" та інформацію про швидкість екранного простору (подібно ефектам розмиття руху), яку можна екстраполювати.
DMGregory

2

Так, це не тільки можливо, але й зараз доступно: підключіть ігровий ПК / консоль до телевізора, який використовує інтерполяцію руху . Думки різняться, і це менш підходить для ігор з посмикуванням, як FPS через відставання інтерполяції, але для збільшення частоти кадрів від 60 до 120 Гц це чудово працює.

Щодо того, чи можна це зробити в самій грі, ще недостатньо поштовху, оскільки більшість моніторів не можуть вивести такі високі частоти кадрів. Монітори 120 + Гц для комп’ютерів зустрічаються рідше, хоча, судячи з того, як рухаються телевізори, це може статися незабаром. Наявність монітора високої частоти оновлення має переваги, навіть якщо гра не може досягти частоти кадрів: крім вищезгаданої інтерполяції руху на основі телевізора, вона може запропонувати більш плавні кадри, якщо грі дозволять виводити кадри так, як вони готові, а не синхронізовані. до ala v-sync. Як тільки монітори 120 + Гц є звичайною справою, я очікую, що розробники ігор наздогнать і почнуть використовувати більше хитрощів, включаючи інтерполяцію руху, щоб досягти цих високих частот кадрів.


3
Мій досвід показав, що ці системи мають величезну затримку введення, як 200 + мс (12+ кадрів при 60 кадрів в секунду). Це причина, що у телевізора зазвичай є "ігровий режим", який відключає цю функцію.
BlueRaja - Danny Pflughoeft

0

Затримка між тим, коли користувач щось робить, і коли результат з'являється на екрані, ніколи не повинен перевищувати 100 мс, або користувач може помітити затримку.

Монітору користувача може знадобитися близько 30 мс для відображення отриманого зображення. Доступні набагато швидші монітори, але багато середніх користувачів не мають таких. Якщо відеокарта обчислює 30 кадрів в секунду, для обчислення кадру потрібно 33 мс. Я припускаю 30 кадрів в секунду, тому що нам не потрібна інтерполяція кадру, якщо гра вже працює на 60 кадрів в секунду. Якщо ми використовуємо потрійну буферизацію, це збільшується вдвічі до 66 мс. Це 90 мс.

Я думаю, нам потрібна потрійна буферизація для інтерполяції кадрів, щоб мати сенс. Отже, якщо ми використовуємо інтерполяцію кадру поверх цього, щоб отримати 60 кадрів в секунду, ми збільшуємо затримку на один кадр частотою 60 Гц, що є ще 17 мс + час інтерполяції X, приводячи нас до 107 мс + X. Проблема не в інтерполяції, як такий, але той факт, що ми вже наближені до тієї точки, коли затримка помітна перед тим, як ввести інтерполяцію.

Напевно, це буде добре для гри, яка здебільшого є віртуальним фільмом, але в FPS користувачі помітять, що щось не виходить із націленням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.