Mungkinkah interpolasi bingkai seperti yang digunakan oleh SmoothVideo Project menjadi opsi untuk meningkatkan framerate game tanpa sebesar hit performa?

11

Proyek SmoothVideo menggunakan interpolasi bingkai untuk meningkatkan fps video dari 24 menjadi 60. Hasilnya cukup mengesankan . Saya bertanya-tanya apakah ini bisa diterapkan, dan apakah itu akan terlihat bagus di video game?

Ini menggunakan sumber daya jauh lebih sedikit daripada rendering semua frame sehingga akan memungkinkan rig ujung bawah untuk memberikan kualitas rig yang jauh lebih baik di beberapa tingkat kompromi. Saya tahu itu tidak akan seakurat itu, dan akan sedikit meningkatkan latensi input karena perlu berpegang pada bingkai terbaru untuk dapat menghasilkan dan memasukkan yang diinterpolasi. Ini tidak seburuk full frame, dengan alasan saya hanya lag akan menjadi waktu interpolasi ditambah setengah dari waktu refresh fps asli. Jadi untuk 30 fps akan menjadi waktu interpolasi 33ms / 2 +.

Mungkin kelambatan ini akan membuatnya tidak cocok untuk game first person first speed, tapi saya ragu itu akan menjadi hambatan dalam permainan yang berjalan lebih lambat.

Kelambatan menjadi lebih rendah pada tingkat awal yang lebih tinggi, jadi saya akan berpikir itu akan sangat berharga ketika pergi dari 60fps ke 100 + fps yang meningkatkan pengalaman meskipun semakin sedikit, sambil menjadi pajak ekstrim pada sistem.

cybrbeast
sumber
Dalam beberapa hal ini sudah dilakukan dengan blur. Kurangnya data gerak yang diturunkan (dijelaskan dalam beberapa jawaban) diselesaikan dengan menggunakan gerakan objek yang sudah diketahui . Satu-satunya perbedaan adalah bahwa alih-alih melakukan interpolasi dengan lancar, render membuat beberapa interpolasi dan membuat campurannya. Interpolasi seperti yang Anda gambarkan mungkin tidak digunakan karena perubahan oklusi dan menciptakan hasil yang tidak diinginkan.
transistor09

Jawaban:

6

Sebuah sistem di sepanjang garis ini telah digunakan dalam The Force Unleashed . Saya tidak mengetahui judul lain yang telah menggunakannya.

DMGregory
sumber
1
Terimakasih atas infonya. Menemukan publikasi di dalamnya: dl.acm.org/citation.cfm?id=1837047 Tampaknya berhasil, jadi mengapa ia tidak melihat penggunaan yang lebih luas?
cybrbeast
Sebagian besar untuk alasan yang dijabarkan dalam jawaban Byte56: ini bukan tanpa kekurangan dan dalam banyak kasus kekurangan itu tidak layak, mengingat bahwa ada cara lain untuk mencapai frame rate yang lebih tinggi juga.
1
Menurut artikel ini dengan menggunakan interpolasi prediktif metode itu sebenarnya dapat mengurangi latensi! eurogamer.net/articles/... Jadi sepertinya lebih baik di semua metrik. Tetapi sesuatu pasti hilang karena Anda akan berpikir itu akan digunakan di mana-mana jika ini benar.
cybrbeast
@ David: artikel ini berarti mengurangi latensi semu dibandingkan berjalan pada 30 fps, untuk jenis input tertentu. Berjalan dengan 60 fps secara native masih lebih disukai bila memungkinkan (latensi yang lebih baik dan tidak ada artefak interpolasi), sehingga banyak pengembang menganggap bahwa target pilihan pertama mereka. Ketika game gagal mencapai 60 fps, itu tidak selalu dengan cukup waktu atau anggaran tersisa untuk membuat sistem interpolasi untuk memperlancar kesenjangan - sistem ini cukup rumit dan, dalam kasus TFU, dibantu oleh beberapa aspek dari pipeline rendering mereka yang tidak dibagikan secara universal oleh semua game.
DMGregory
Saya mencoba mengatakan lebih baik di semua metrik dibandingkan dengan 30 fps tanpa peningkatan, tidak menghasilkan 60fps
cybrbeast
9

Ya itu mungkin, tetapi itu bukan tanpa komplikasinya.

Sementara interpolasi bingkai dapat bekerja secara real-time pada video, itu tidak selalu terjadi dengan video game. Meskipun ini memproses video secara real-time, perangkat lunak ini dapat "melihat ke depan" ke frame berikutnya. Ini adalah komponen interpolasi yang cukup penting. Di sinilah masalah ikut bermain dengan game. Sebagian besar waktu, frame berikutnya berikutnya belum ditampilkan! Jadi perangkat lunak tidak tahu poin selanjutnya dalam interpolasi.

Tentu saja ada kemungkinan menjalankan game satu atau dua frame di belakang untuk memberikan perangkat lunak interpolasi Anda frame yang diperlukan untuk bekerja dengannya. Namun, ini tidak berfungsi dengan baik untuk media yang interaktif. Sekarang apa yang ditampilkan di layar tertunda dari input yang diterima. Ini membuat segalanya lebih rumit untuk memproses input dan memberikan respons yang baik terhadap gim. Ini seperti membangun lag kinerja buatan. Selain itu, tidak mungkin untuk memiliki dukungan asli di salah satu mesin game utama, yang berarti menulis sendiri.

MichaelHouse
sumber
Adakah reaksi terhadap metode interpolasi yang lebih cerdas yang disebutkan di bawah ini, yang mengklaim dapat mencegah peningkatan latensi? eurogamer.net/articles/…
cybrbeast
Dalam hal ini terutama kalimat terakhir yang berlaku. Saya tidak yakin berapa banyak teknologi mereka mengaburkan fitur itu. Mungkin diperlukan lebih banyak pekerjaan untuk tidak memutus interpolasi, atau bisa saja "berhasil". Saya membayangkan jika itu yang terakhir, kita mungkin melihatnya muncul di beberapa mesin utama (jika tidak dipatenkan). Saya tidak yakin fitur ini saja layak untuk dibuat dan dirawat mesin Anda sendiri.
MichaelHouse
Tidak yakin dengan klaim bahwa menjalankan bingkai di belakang adalah hambatan utama untuk interaktivitas. Game multipemain apa pun yang menggunakan server otoritatif tanpa interpolasi (kondisi permainan) antara dua pembaruan terakhir akan sering menunjukkan kelambatan yang lebih besar, namun ini termasuk beberapa game penembak tercepat. Kami juga tidak perlu frame berikutnya untuk membangun perantara dalam game, karena tidak seperti dalam video, game dapat menghasilkan topeng objek ground-truth & informasi kecepatan ruang layar (mirip dengan efek blur) yang dapat diekstrapolasi.
DMGregory
2

Ya, ini tidak hanya mungkin, tetapi tersedia sekarang: menghubungkan PC game / konsol Anda ke TV yang menggunakan interpolasi gerak . Pendapat bervariasi, dan ini kurang cocok untuk gim kedutan seperti FPS karena jeda interpolasi, tetapi untuk meningkatkan frame rate dari 60 menjadi 120 Hz, itu berfungsi dengan baik.

Mengenai apakah hal ini dapat dilakukan dalam game itu sendiri, belum ada dorongan yang cukup, di mana sebagian besar monitor tidak dapat menampilkan frame rate yang tinggi itu. Monitor 120 + Hz untuk komputer kurang umum, meskipun dilihat dari bagaimana TV berjalan, ini mungkin terjadi segera. Memiliki monitor dengan refresh rate yang tinggi memiliki keuntungan bahkan jika game tidak dapat mencapai frame rate tersebut: selain interpolasi gerak berbasis TV yang disebutkan di atas, ia dapat menawarkan frame yang lebih halus jika game diizinkan untuk menghasilkan frame saat mereka siap, alih-alih disinkronkan. up ala v-sync. Setelah monitor 120 + Hz sudah biasa, saya berharap pengembang game mengejar ketinggalan dan mulai menggunakan lebih banyak trik, termasuk interpolasi gerak, untuk mencapai frame rate yang tinggi itu.

congusbongus
sumber
3
Pengalaman saya adalah bahwa sistem ini memiliki latensi input yang luar biasa , seperti 200 + ms (12+ frame pada 60fps). Inilah sebabnya TV-TV tersebut biasanya memiliki "mode permainan" yang menonaktifkan fitur itu.
BlueRaja - Danny Pflughoeft
0

Jeda antara saat pengguna melakukan sesuatu dan ketika hasilnya muncul di layar tidak boleh melebihi 100 ms atau pengguna mungkin melihat penundaan.

Monitor pengguna mungkin memerlukan waktu sekitar 30 ms untuk menampilkan gambar yang diterimanya. Monitor jauh lebih cepat tersedia, tetapi banyak pengguna rata-rata tidak memilikinya. Jika kartu video menghitung 30 frame per detik, dibutuhkan 33 ms untuk menghitung bingkai. Saya berasumsi 30 fps karena kita tidak perlu interpolasi bingkai jika game sudah berjalan pada 60 fps. Jika kita menggunakan triple buffering, ini akan menjadi dua kali lipat menjadi 66 ms. Itu 90 ms.

Saya pikir kita perlu triple buffering untuk interpolasi frame masuk akal. Jadi jika kita menggunakan interpolasi frame di atas itu untuk mendapatkan 60 fps, kita meningkatkan penundaan dengan satu frame 60Hz, yang merupakan 17 ms + waktu interpolasi X lainnya, membawa kita ke 107 ms + X. Masalahnya bukan interpolasi sebagai seperti itu, tetapi fakta bahwa kita sudah mendekati titik di mana latensi terlihat sebelum kita memperkenalkan interpolasi.

Mungkin akan baik-baik saja untuk game yang sebagian besar adalah film virtual, tetapi dalam FPS pengguna akan melihat ada yang tidak beres dengan tujuan.

Peter
sumber