SteamVR Motion Smoothing: vysoké FPS i na levných grafikách. Zatím jen pro GeForce

9

Grafického výkonu není nikdy dost, rozlišení rostou a náročnost stoupá. Také vykreslování virtuální reality má poměrně velké hardwarové požadavky. Firma Valve ale nyní přišla s novinkou, která pomůže dostat hratelné snímkové frekvence i ze slabších GPU a zpřístupnit tak obsah pro VR brýle používající její platformu SteamVR i uživatelům poněkud levnějších grafik.

Toto zlepšení se jmenuje Motion Smoothing a 27. listopadu Valve slavnostně oznámilo, že opouští fází beta testování a bylo v rámci Steam VR aktivováno pro uživatele. Tato technika má za cíl zvýšit snímkovou frekvenci na počítačích, jejichž grafika není schopná ať už chvilkově, nebo dlouhodobě dosáhnout požadované frekvence (u HTC Vive/Vive Pro například 90 Hz).

Základem Motion Smoothingu je široce známá technika interpolace snímků, používaná například v televizorech pro vyhlazení pohybu. Ovšem v tomto typickém použití interpolace probíhá tak, že se vezmou dva sousední snímky v originálním obrazu a pomocí analýzy pohybových vektorů a podobných metod je odhadnut mezisnímek mezi nimi. Pochopitelně s omezeními danými tím, že ne všechnu potřebnou informaci pro takovou rekonstrukci je možno ve výchozích snímcích nalézt a počítačový program má také svá omezení.

Pokud by se takový postup měl použít na počítačovou hru, která je interaktivní, došlo by k nežádoucímu zvýšení latence mezi vstupem a obrazem. Když byste chtěli například zdvojnásobit frekvenci, museli byste počkat, až GPU vykreslující třeba jen na 45 FPS dodá dva celé snímky a až potom můžete mezi ně začít dopočítávat třetí, který se zobrazí mezi nimi. Výsledná latence navíc je tedy značná, což bývá u virtuální reality nepříjemné.

HTC Vive
HTC Vive

Motion Smoothing: interpolace snímků bez dopadu na latenci

Motion Smoothing ve SteamVR proto používá odlišný přístup. Místo dopočítání mezisnímku mezi dva reálné interpoluje pohyb takříkajíc prediktivně. Místo jednoho snímku z minulosti a jednoho z budoucnosti jsou použité poslední dva minulé snímky, takže se nemusí čekat a přidávat latenci vícesnímkovým bufferem. „Zfalšování“ nového syntetického snímku funguje tak, že algoritmus analyzuje pohyb, jenž nastal mezi posledními dvěma snímky. Pak na tomto základě odhadne, jak bude stejný pohyb pokračovat ve snímku následujícím, a vyrobí podle toho uměle snímek, kde jsou pohybující se objekty patřičně posunuty/transformovány. Tento proces samozřejmě opět bude obsahovat chyby a nepřesnosti – oběd zdarma neexistuje a chybějící informace je chybějící informace. Pokud by například v tomto místě měl pohyb ustat nebo se změnit, interpolace to neví a chybně ukáže jeho pokračování beze změny.

Nicméně když bez podobné techniky GPU není schopno dosáhnout dost vysoké frekvence, je nedokonalý odhadnutý snímek lepší než nic a může zajistit, aby byl pohyb vnímán jako plynulý. Syntetické snímky z chybami jsou navíc prokládány těmi správnými (reálně vypočítanými), takže jejich odchylky člověk nemusí postřehnout.

S Motion Smoothingem musí hra či VR aplikace vykreslit sama jen každý druhý snímek, čímž se nároky na výkon o hodně snižují. Pokud by to nestačilo, je dokonce možné počítat dva syntetické snímky na jeden reálně vypočítaný (zde pochopitelně narostou projevy chyb). Pozitivní je, že kadence vkládání těchto syntetických snímků není fixní, ale přizpůsobí se aktuálnímu výkonu hry. Dokud tedy GPU zvládá a tento trik není nutný, máte plnou nativní kvalitu, Motion Smoothing nastoupí do akce teprve tehdy, když GPU přestane stíhat počítat snímky a frekvence klesne.

Novinka zatím jenom pro grafiky GeForce

Jak už bylo řečeno, tato technika už je nyní zapnutá v klientu SteamVR a můžete ji tedy ve hrách využívat, pokud máte headsety kompatibilní se SteamVR. Má to ovšem jistá omezení – aktivní je na počítačích se systémem Windows 10 a s grafickou kartou značky Nvidia. Na Radeonech a s integrovanými grafikami Intelu tedy (zatím?) nefunguje. Kromě toho také Valve upozorňuje, že nepracuje s brýlemi Oculus Rift nebo se zařízeními platformy Windows Mixed Reality. Tato mají totiž vlastní způsoby, jak se vypořádávají s propady FPS a jejich ovladače asi nejsou kompatibilní (nebo s nimi Valve nechce implementaci zvlášť řešit).

SteamVR Motion Smoothing: vysoké FPS i na levných grafikách. Zatím jen pro GeForce

Ohodnoťte tento článek!
4.4 (88%) 10 hlas/ů

9 KOMENTÁŘE

  1. HTC Vive vcelku o nicem, HTC Vive Pro jsou silene drahe, to se za dane ceny masovkou nestane. Oproti tomu Oculus Rift nebo bryle pro Windows Mixed Reality potencial maji, ale preci jenom ani u tech ta cenovka neni takova, ze by se to dalo menit s kazdou generaci, pokud do toho clovek opravdu neni blazen. Takze pockam si na dalsi generaci.

    Zaroven asi nejvetsi problem pro SteamVR, ze nemaji nic co by melo „drive“ – proste to dokazalo smest konkurenci, k WMR muzou mit lidi od Microsftu obchod a Oculus ma vlastni propracovanou aplikaci.

  2. Pro koho není problém jít a dát za HTC Vive Pro cenu, kterou stojí, tak IMHO má většinou zároveň hi-end PC, kde rozjede vše v pohodě.
    Levnější headsety zas mají nižší rozlišení = nároky.
    Takže mi přijde, že tento smoothing nemá až tak velkou cílovku, ale třeba se pletu.
    Jak to bude fungovat posoudit nedokážu, ale každá taková interpolace je negativní vliv a v případě VR bych to viděl buď plných 90fps, nebo radši nic, protože pak z toho člověku např. může být špatně, když ten obraz dělá co by neměl.

    Já párkrát zkoušel něco hrát s ne-pro HTC Vive, každopádně mě to nezaujalo. A ne kvůli tomu, že by rozlišení nějak hrubě nestačilo nebo tak, ale prostě mi to nesedí a hry mi nepřišly nic moc.
    Takže v horizontu tak 5let VR vůbec neplánuju a uvidím jak se ten žánr bude posouvat v budoucnu. 🙂

    • Z původního Vive jsem měl podobný pocit. Ale pak jsem si s Vive Pro vyzkoušel ukázku toho, jak by jednou mohla vypadat prohlídka domu, s tím, že některé části domu byly interaktivní. Bylo to mnohem lepší, než hry, kterém jsem hrál na běžném Vive, jen teda se to poměrně rychle okoukalo a pak už nebylo co dělat. Ale jako demonstrace technologie to bylo parádní a přesvědčilo mě to, že za nějakých 5+ let může mít VR smysluplné použití.

  3. Pokud dochází v obraze ke švenku (pohyb hlavou), jak to může dopočítat následující snímek když neví co se v záběru objeví? Nebo je součástí řešení apriorní rendering širšího zorného pole(rozlišení?) dle dynamiky pohybu hlavy (výřez se použije pro zobrazení a okraje pro případnou predikci)?

    • Ty náklady by asi nebyly velké, pokud například uvažujeme o rychlosti otáčení 120°/s, pak při 90FPS stačí rozšířit záběr rozlišení o jednotky ° (rozměrově u obrazu o desítky pixelů).