Speciál jsme zpracovali také ve formě videa, které jednotlivé kroky podrobněji popisuje.
Snímková frekvence či časy mezi snímky jsou velmi důležitým ukazatelem plynulosti hry. Jenže zatímco na PC si můžeme pomocí různých overlayů jejich hodnoty jednoduše změřit, na konzolích to tak přímočaré rozhodně není. Pokud ale sledujete obsah například od Digital Foundry, tak určitě víte, že frame rate na konzolích změřit jde. Jak toho ale docílit a můžete se o něco takového pokusit vy sami? Odpověď na druhou otázku zní ano a na tu první se pokusím odpovědět v následujícím textu.
Co budeme potřebovat:
- Střihovou kartu
- Software pro zachycení záběrů (OBS)
- Software pro analýzu frame ratu (Trdrop)
Co je střihová karta
Protože frame rate nelze měřit přímo na konzoli jako takové a možnosti nahrávání jsou na ní poměrně omezené a nevyhovující pro naše potřeby, budete muset použít střihovou kartu. Zařízení, které se ocitne na půli cesty mezi samotnou konzolí a vaším monitorem či televizí. Obraz skrz střihovou kartu putuje nejenom do zobrazovacího zařízení, ale také do vašeho počítače či notebooku, kde s ním můžete dále pracovat. Jde tak o ideální řešení, jak zachytit záběry z jiného zařízení než z toho, na kterém nahráváme.
Jak vybrat střihovou kartu
Vzhledem k tomu, že řada z vás pravděpodobně střihovou kartu doma mít nebude, rozhodl jsem se zde uvést také pár rad pro případný nákup. V základu rozlišujeme dva typy střihových karet: interní a externí, o jejichž rozdílech asi poměrně jasně mluví samotné názvy. Interní střihová karta se stejně jako například grafická karta připojuje přímo do počítače přes PCIe slot, zatímco externí je přenosná a je připojena přes USB kabel. Ještě nedávno platilo, že interní střihovky mají většinou lepší parametry, ale už to také není úplně pravda.
Co vás bude při výběru zajímat, jsou následující věci. Předně samozřejmě nejvyšší podporované rozlišení a snímková frekvence, respektive jejich různé kombinace, které je potřeba pečlivě prostudovat. A hlavně je třeba rozlišovat passthrough (obraz, který jde do vašeho monitoru nebo televize) a capture (obraz pro nahrávání, který jde do vašeho počítače). Hodnoty mnohdy mohou být odlišné (například passthrough 4K 60, ale capture pouze 4K 30), takže je třeba si na to dát pozor.
Rozhodujícím faktorem může být také formát videa, jež do vašeho počítače putuje. Dříve karty často mívaly vlastní enkodér, který video předem „znehodnotil“. Dnes už je běžné, že se k vám dostane vizuálně bezztrátový obraz, přesto je ale dobré se při nákupu o takových vlastnostech ujistit. Některé karty mají například kombinaci nejvyššího rozlišení a frame ratu „uzamčenou“ za MJPEG kompresí. Pro klasické použití to není žádný problém, ale zrovna pro analýzu frame ratu je to nevhodné. Stejně tak je důležitá podpora technologií jako například VRR a pro někoho také HDR obraz, ten však může být opět omezen pouze na určité rozlišení a frame raty. Střihové karty jsou zkrátka docela věda, v případě pochybnosti doporučuji zhlédnout videa kanálu EposVox, který se střihovými kartami a kompresí videa zabývá.
Největší výrobci jsou každopádně dva: Elgato a AverMedia. Osobní zkušenosti mám pouze s první značkou, ale i na karty od AverMedie jsou velice dobré ohlasy. Nedávno od obou společností vstoupily na trh nové kousky, které plně podporují HDMI 2.1. Poměrně paradoxně větší péči obdržely externí karty, přičemž Elgato 4K X je momentálně pravděpodobně nejlepší střihová karta na trhu (kterou i osobně používám), neboť podporuje 4K 120 passthrough i capture, zatímco konkurence od AverMedie pouze passthrough. Pokud ale nepotřebujete to nejlepší z nejlepších, můžete sáhnout i po nějakém levnějším kousku. Před vydáním 4K X jsem například spokojeně používal Elgato HD60 X.
Software pro nahrávání (OBS)
Když už máme hardware, přes který se obraz dostane do počítače, je třeba také software, jenž bude schopný obraz nahrát a uložit. Osobně mám zkušenosti pouze s poměrně populárním OBS, ale samozřejmě můžete použít i jiný vámi preferovaný software, byť jsou tu vyžadována určitá specifika. Nejprve si je třeba správně nastavit střihovou kartu, požadované rozlišení a snímkovou frekvenci. Pokud máte konzoli zapnutou a obraz v OBS vidíte, můžete se přesunout dál. V opačném případě se ničeho nelekejte, při černé obrazovce mnohdy stačí použít onu prostou radu „prostě to zapni a vypni“, v tomto případě tedy odpojit a znovu zapojit USB kabel střihové karty do počítače (pokud máte externí kartu).
Dobrou zprávou je, že v nastavení se moc „hrabat“ nemusíte, ale tady přichází docela velký háček. Abychom mohli frame rate správně zanalyzovat, budeme potřebovat vizuálně bezztrátové (lossless) záběry. I kdybychom použili kvalitní kompresi například přes AV1 a relativně vysokém bitratu, video by stále mělo určité (byť okem těžce viditelné) artefakty, které by znemožnily kvalitní analýzu. Obraz musí být naprosto čistý, a proto je třeba sáhnout po této ne úplně ideální, ale jediné možné variantě.
Bezztrátový obraz si totiž vyžádá svou daň a velikosti výsledných souborů jsou obrovské. Pokud nahráváte ve 4K, tak klidně přes 5 GB na minutu. To je ale fakt, se kterým se prakticky nic dělat nedá a lze se s ním vypořádat pouze dostatečně velkým úložištěm.
Nastavení je jinak velice jednoduché, máte tady dvě možnosti. Nejsnazší je v nastavení nahrávání zvolit „Jednoduché“ a následně si vybrat bezztrátovou kvalitu (použit je kodek UT s velmi vysokou rychlostí, ale také zvýšenou náročnosti na následnou práci s uloženým videem).
Druhou možností je zůstat u pokročilého nastavení a vybrat si vámi preferovaný kodek, který podporuje bezztrátovou kompresi. Pokud máte grafickou kartu od Nvidie, doporučuji použít NVENC HEVC (H.265), čímž zátěž přesunete na GPU. Soubory každopádně budou velké tak jako tak.
Analýza frame ratu (Trdrop)
Když už máme pořízené záběry, můžeme se konečně vrhnout na samotnou analýzu, tady už je ale výběr softwaru značně omezený. Digital Foundry sice používá vlastní, dnes už velmi propracovaný software, ale mají ho pouze pro vlastní účely. My se tak musíme spolehnout na práci lidí, kteří jsou ochotni se o svůj výtvor podělit, a protože měření frame ratu na konzolích je v zásadě dost „niche“ záležitost, existuje prakticky jediná varianta: Trdrop. Autor sice původně sliboval plnohodnotnou druhou verzi s řadou vylepšení, ale po dvou letech mlčení bych raději ani nečekal, že se jí někdy dočkáme. Musíme se tak spolehnout na verzi 1.2, která však stále bezproblémově funguje.
Po spuštění programu je třeba přidat soubor s videem, jehož snímkovou frekvenci chcete zanalyzovat, najednou můžete mít až tři vedle sebe. Následně už vidíte, jak se budou údaje ukazovat. Dole je časová osa frame ratu, vlevo nad ní osa frame time (tedy časů mezi snímky) a vlevo nahoře aktuální hodnota FPS. Pokud pak dojde k tearingu (trhání obrazu), ukáže se to na videu pomocí bílých čar.
Řadu věcí si můžete upravit v nastavení, včetně rozsahu frame ratu, použité barvy a podobně. Nutné je nicméně nastavit „Pixel difference“, osobně doporučuji hodnotu 7. Trdrop totiž funguje tak, že každý snímek převede do odstínů šedi a následně porovnává rozdíl mezi dvěma snímky (nové pixely jsou bílé, staré mají černou barvu). Pokud je rozdíl dostatečný, jde o nový snímek, pokud ne, tak jde stále o ten samý, tedy duplicitní snímek a znamená to pád frame ratu.
Pixel difference tak nastavuje toleraci pixelů (od 0 do 255), přičemž ani jeden extrém není ideální. Pokud nastavíte 0, software bude brát jako nové snímky i ty duplicitní, a z 30 FPS obrazu tak na ose budete mít 60 FPS. Pokud nastavíte 255, tak Trdrop naopak bude brát i nové snímky jako duplicitní a změřený frame rate bude mnohem nižší než ten skutečný. Pokud si chcete ověřit správnou funkčnost, můžete si zapnout delta rendering, který vám ukáže přímo obraz v odstínech šedi, se kterým program pracuje.
Jakmile máte vše nastaveno, můžete se pustit do exportu. Nicméně pozor, nemůžete exportovat přímo video, vše se ukládá po jednotlivých snímcích do obrázků (buď JPEG, nebo TIFF, podle vaší volby). Můžete si každopádně zvolit, zda chcete exportovat čistě overaly (který pak budete muset dodatečně s videem spojit), což je rychlejší varianta, nebo overaly i s videem, což je samozřejmě náročnější, ale ušetří vám to práci. Důležitá je samozřejmě také volba rozlišení, ve kterém chcete výsledek vyrenderovat, či možnost zapnout live preview, abyste přímo při renderingu viděli, jak to s frame ratem vypadá.
A máme hotovo. Pokud chcete sekvenci snímků převést zpátky na video, stačí je všechny přesunout do programu na střih videa (osobně používám DaVinci Resolve) a vyrenderovat. Jak můžete vidět, úplně jednoduchá záležitost to není, ale rozhodně jde frame rate zanalyzovat i bez výraznějších technických znalostí. Největší překážkou je v tomhle velikost souborů, která znemožňuje efektivně měřit FPS u delších úseků. To je bohužel problém, který by se dal vyřešit pouze měřením frame ratu v reálném čase, což Trdrop neumožňuje, ale třeba se někdy takového programu dočkáme. Do té doby vám každopádně přeji hodně štěstí s měřením frame ratu.
To nema ve funkci ani zadna modernejsi herni TV? Jen se ptam, vubec nic o tom nevim.
Televize může akorát ukázat aktuální refresh rate, který je bez použití VRR stabilní (60/120 Hz). S VRR už se samozřejmě může pohybovat (a kopíruje frame rate), ale rozhodně nejde o přesný ukazatel. Navíc na PS5 v základní implementaci nemůže jít níž než 48 Hz.
Moje Samsung TV to má:)
Já mám jeden takovej blbej dotaz. U PC to funguje tak, že se výsledný obraz renderuje v rozlišení monitoru. A čím vyšší rozlišení, tím víc potřebujete výkonu. Jak tohle funguje u konzolí?
Hra se renderuje v předem nastaveném rozlišení, které zvolili vývojáři, výstupové rozlišení v nastavení konzole by na výkon nemělo mít vliv. Samozřejmě ale platí, že pokud třeba daný titul poběží jen ve Full HD, nebude vypadat na 4K monitoru/televizi zrovna ostře.
V dnešní době už se každopádně často používají upscalingy do 4K, takže de facto to vysoké rozlišení je, nicméně velmi agresivní upscaling pomocí FSR způsobuje hodně artefaktů a nestabilní obraz. Ale to už je zase jiné téma.
Já sem si přesně tohle myslel. Na PC se rozlišení přizpůsobuje monitoru, na konzolích je rozlišení pevně daný a schroustat to musí monitor. Myslím, že je docela škoda, že vývojáři nenabízí i možnost FullHD s Quality FSR pro zájemce o hraní na FullHD monitorech/televizích. Kupě lidí by to stačilo a měli by prakticky zaručeno 60 FPS. Ale nevím jak náročný na vývoj je udělat takový jakoby downscale a navíc v poměru k počtu případných zájemců. Protože je mi jasný, že konzole je dneska typicky připojena ke 4K televizi.
Konzole samozřejmě mají často ve hrách režimy na výběr, buď upřednostněné fps nebo rozlišení, případně kombinace s RT – záleží na vývojářích. Spíše je horší ta analýza rozlišení, protože po upscale může člověk jen hádat, navíc rozlišení nemusí být pevné, zejména u fps režimů bude nastavený nějaký rozsah dynamického renderovaného rozlišení, které se mění podle fps – jakmile fps poklesnou pod mez, rozlišení se sníží. Dokonce na PC jsem viděl pár her, které toto umí.
Ano, dynamické rozlišení se používá často, je to docela efektivní řešení. Vstupní rozlišení (před upscalingem) mimochodem jde vypočítat pixel countingem, který dělá právě Digital Foundry. Mých pár pokusů každopádně vždycky skončilo špatně Dneska už je to „kvůli“ kvalitnímu anti-aliasingu dost složité.
Já vím. Většinou dva režimy. Režim kvality nebo výkonu. Ale oboje vždycky cílí na 4K výstup. Interně se toho potom dosahuje různě. Mě šlo o to jak náročný by bylo cílit na výstup ve FullHD s Quality FSR. Konzole by pak měla dostatek výkonu na stabilních 60 FPS a díky tomu, že by tam nebyl žádný agresivní upscale, kvalita obrazu by byla taky dobrá.
Tak v tomto je Sony poněkud mimo, jelikož renderuje prakticky jen ve vývojáři daném rozlišení a konzole pak upscaluje či downscaluje do požadovaného rozlišení. Na 4K monitoru tak nelze vnutit ani 1440p, že by se v některé hře s odemčeným framerate počet snímků třeba zvýšil a člověk se spokojil s obrazem. Pokud vím, tak u současného Xbox je to trochu jinak. Však Sony přidala do PS5 možnost 1440p výstupu až dost později a to do něj třeba opět downscaluje ze 4K, takže žádné navýšení fps.
Třeba na PS3 jsou hry, které skutečně renderují podle nastaveného rozlišení konzole, třeba Marvel Ultimate Alliance – v 1080p snad 15 fps, v 720p možná až 20 fps, ve 480p třeba 22 fps – ve všech případech absolutně nehratelné.
Já vím, že o tom výsledném rozlišení rozhodují vývojáři. Já to asi špatně vysvětluju. Jak vývojářsky náročné by bylo přidat ještě jedno nastavení kvality. Čili FullHD výstup. Tím, že je to vlastně downscale oproti 4K, tak by tam nemusela probíhat nějaká rozsáhlá optimalizace. Něco by zakrylo to FSR. Myslím tím fakt to, jako jestli by to byla práce na týden nebo na půl roku.
Skvěle zpracovaný guide nicméně je neuvěřitelné, co pro zaznamenávání frame rate (a případnou analýzu hratelnosti) musí lidi na konzolích dělat. Teda – naštěstí to za nás dělají skupiny lidí jako Digital Foundery či vy na zingu. Díky
Já moc děkuji za pěkný komentář