SmoothVideo Project tarafından kullanılan gibi kare enterpolasyonu, bir performans artışı olmadan oyunların kare hızını artırmak için bir seçenek olabilir mi?


11

SmoothVideo Projesi, videonun fps'sini 24'ten 60'a çıkarmak için kare enterpolasyonunu kullanır. Sonuçlar oldukça etkileyici . Bunun uygulanıp uygulanamayacağını ve video oyunlarında iyi görünüp görünmeyeceğini merak ediyordum.

Tüm çerçeveleri oluşturmaktan çok daha az kaynak kullanır, bu nedenle alt uç makinelerin bir miktar uzlaşma düzeyinde çok daha iyi platformların kalitesinde işlenmesine izin verir. Doğru olmayacağını biliyorum ve enterpolasyonlu olanı oluşturmak ve eklemek için en yeni çerçeveye tutunması gerektiği için giriş gecikmesini biraz artıracağını biliyorum. Tam bir çerçeve kadar kötü değil, benim aklıma göre sadece gecikme enterpolasyon süresi artı orijinal fps yenileme süresinin yarısı olurdu. Yani 30 fps için 33ms / 2 + enterpolasyon süresi olacaktır.

Belki bu gecikme, hızlı geçmiş birinci şahıs oyunları için uygun olmaz, ancak daha yavaş tempolu oyunlarda bir engel olacağından şüpheliyim.

Gecikme daha yüksek başlangıç ​​oranlarında daha düşük olur, bu yüzden 60 fps'den 100 + fps'ye giderken buna kesinlikle değer olacağını düşünürüm, bu da sistemde aşırı vergilendirme yaparken giderek marjinal bir şekilde deneyimi geliştirir.


Bazı açılardan bu zaten hareket bulanıklığı ile yapılıyor. Türetilmiş hareket verilerinin eksikliği (bazı cevaplarda açıklanmaktadır) zaten bilinen nesnelerin hareketleri kullanılarak çözülmektedir . Tek fark, sorunsuz bir şekilde enterpolasyon yapmak yerine, renderörlerin birkaç enterpolasyon yapması ve bunların bir karışımını oluşturmasıdır. Açıkladığınız gibi enterpolasyon muhtemelen kullanılmaz çünkü oklüzyon değişir ve istenmeyen bir sonuç yaratır.
transistor09

Yanıtlar:


6

The Force Unleashed'de bu hatlar boyunca bir sistem kullanılmıştır . Yine de kullanan diğer başlıkların farkında değilim.


1
Bilgi için teşekkürler. Üzerinde bir yayın buldu: dl.acm.org/citation.cfm?id=1837047 Başarılı görünüyor, neden daha geniş bir kullanım görmedi?
cybrbeast

Çoğunlukla Byte56'nın cevabında belirtilen nedenlerden dolayı: daha yüksek kare hızları elde etmenin başka yolları olduğu göz önüne alındığında, dezavantajları yoktur ve çoğu durumda bu dezavantajlar buna değmez.

1
Bu makaleye göre tahminli enterpolasyon kullanarak bu yöntem aslında gecikmeyi azaltabilir! eurogamer.net/articles/… Bu yüzden tüm metriklerde daha iyi görünüyor. Ama eğer doğruysa her yerde kullanılabileceğini düşündüğünüz gibi bir şey eksik olmalıdır.
cybrbeast

@David: Makale , belirli girdi türleri için 30 fps'de çalışmaya kıyasla görünür gecikmeyi azalttığı anlamına gelir . Mümkün olduğunda yerel olarak 60 fps hızında çalıştırmak tercih edilir (daha iyi gecikme süresi ve enterpolasyon artefaktı yok), bu yüzden birçok geliştirici ilk tercih hedeflerini düşünür. Oyunlar 60 fps'ye ulaşamadığı zaman, boşlukları düzeltmek için bir enterpolasyon sistemi yazmak için her zaman yeterli zaman veya bütçe kalmaz - bu sistem oldukça karmaşıktır ve TFU'nun durumunda, işleme hattının bazı yönleri tarafından desteklenmez. tüm oyunlar tarafından evrensel olarak paylaşılır.
DMGregory

Tüm metriklerde 30 fps
hızlandırılmamış

9

Evet bu mümkün, ancak komplikasyonları olmadan değil.

Çerçeve enterpolasyonu videolarda gerçek zamanlı çalışabilirken, video oyunlarında durum böyle olmayabilir. Bu videolarda gerçek zamanlı işlense de, yazılım bir sonraki kareye "ileriye bakabilir". Bu enterpolasyonun oldukça kritik bir bileşenidir. İşte mesele oyunlarda devreye giriyor. Çoğu zaman, bir sonraki kare henüz oluşturulmadı! Yani yazılım enterpolasyondaki bir sonraki noktayı bilmiyor.

İnterpolasyon yazılımınıza çalışması gereken kareleri vermek için oyunu bir veya iki kare geride bırakma olasılığı kesinlikle vardır. Ancak, bu etkileşimli medya için de işe yaramaz. Şimdi ekranda gösterilenler alınan girişten erteleniyor. Bu, girdileri işlemek ve oyuna iyi bir yanıt vermek için işleri daha zor hale getirir. Yapay bir performans gecikmesinde bina gibi. Ayrıca, büyük oyun motorlarının herhangi birinde yerel desteğe sahip olması pek olası değildir, bu da kendi oyununuzu yazmak anlamına gelir.


Gecikme süresinde herhangi bir artışı önlediğini iddia eden bu akıllı enterpolasyon yöntemine herhangi bir tepki? eurogamer.net/articles/…
cybrbeast

Bu durumda öncelikle geçerli olan son cümledir. Teknolojilerinin bu özelliği ne kadar soyutladığından emin değilim. İnterpolasyonu kırmamak önemli ölçüde daha fazla çaba harcamış olabilir veya "yeni çalışmış" olabilir. Sanırım ikincisi ise, bazı büyük motorlarda göründüğünü görebiliriz (eğer patentli değilse). Bu özelliğin tek başına kendi motorunuzu oluşturmaya ve bakımını yapmaya değeceğinden emin değilim.
MichaelHouse

Geride bir çerçeve yürütmenin etkileşim için büyük bir engel olduğu iddiasından emin değilim. Son iki güncelleme arasında yetkili sunucu w / (oyun durumu) enterpolasyonu kullanan çok oyunculu oyunlar genellikle daha büyük bir gecikme gösterecektir, ancak bu en hızlı nişancı oyunlarından bazılarını içerir. Oyunlarda ara ürünler oluşturmak için bir sonraki kareye de ihtiyacımız yok, çünkü videodan farklı olarak, oyunlar tahmin edilebilir zemin gerçeği nesne maskeleri ve ekran alanı hız bilgileri (hareket bulanıklığı efektlerine benzer) üretebilir.
DMGregory

2

Evet, bu sadece mümkün değil, şimdi de mevcut: oyun PC'nizi / konsolunuzu hareket enterpolasyonu kullanan bir TV'ye bağlayın . Görüşler değişiklik gösterir ve bu enterpolasyon gecikmesi nedeniyle FPS gibi seğirme oyunları için daha az uygundur, ancak kare hızlarını 60 ila 120Hz arasında yükseltmek için iyi çalışır.

Bunun oyunun kendisinde yapılıp yapılamayacağına gelince, çoğu monitörün bu yüksek kare hızlarını veremediği için henüz yeterli ivme yok. Bilgisayarlar için 120 + Hz monitörler daha az yaygındır, ancak TV'lerin nasıl gittiğine bakılırsa, bu yakında olabilir. Yüksek bir yenileme hızı monitörüne sahip olmak, oyun bu kare hızlarına ulaşamasa bile avantajlara sahiptir: yukarıda belirtilen TV tabanlı hareket enterpolasyonunun yanı sıra, oyunun senkronize edilmiş yerine kare çıkmasına izin verilirse daha yumuşak kareler sunabilir yukarı ala v-sync. 120 + Hz monitörler sıradan hale geldiğinde, oyun geliştiricilerin bu yüksek kare hızlarına ulaşmak için hareket enterpolasyonu da dahil olmak üzere daha fazla numara yakalamasını ve kullanmaya başlamasını bekliyorum.


3
Benim deneyimim, bu sistemlerin 200 + ms (60 fps'de 12+ kare) gibi muazzam giriş gecikmesine sahip olmasıdır . Bu televizyonların tipik olarak bu özelliği devre dışı bırakan bir "oyun modu" na sahip olmasının nedeni budur.
BlueRaja - Danny Pflughoeft

0

Kullanıcının bir şey yaptığı ve sonuç ekranda göründüğü zamandaki gecikme asla 100 ms'yi geçmemelidir veya kullanıcı gecikmeyi fark edebilir.

Kullanıcının ekranının aldığı resmi görüntülemesi yaklaşık 30 ms sürebilir. Çok daha hızlı monitörler mevcuttur, ancak çoğu ortalama kullanıcıda bu yoktur. Video kartı saniyede 30 kare hesaplıyorsa, bir karenin hesaplanması 33 ms sürer. 30 fps olduğunu düşünüyorum çünkü oyun zaten 60 fps'de çalışıyorsa çerçeve enterpolasyonuna ihtiyacımız yok. Üçlü tamponlama kullanırsak, bu 66 ms'ye iki katına çıkar. 90 ms.

Bence mantıksal enterpolasyon için üçlü tamponlamaya ihtiyacımız var. Bu nedenle, 60 fps elde etmek için bunun üzerinde çerçeve enterpolasyonu kullanırsak, gecikmeyi bir 60Hz kare arttırırız, bu da başka bir 17 ms + enterpolasyon süresi X'dir ve bizi 107 ms + X'e getirir. ancak, enterpolasyonu uygulamaya başlamadan önce gecikmenin farkedilebildiği noktaya çok yakın olduğumuz gerçeği.

Muhtemelen sanal bir film olan bir oyun için iyi olurdu, ancak bir FPS'de kullanıcılar amaçlanan bir şeyin kapalı olduğunu fark edeceklerdi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.