Poruchy plynulosti pohybu v počítačových hrách
30.10.2015, Pavel Šantrůček, recenze
Už jste někdy slyšeli o poruchách plynulosti pohybu v počítačových hrách? Víte, co jsou to latence, frame times, jak je měřit a vyhodnocovat? Pokud ne, tento článek by Vám neměl uniknout, jelikož je určený právě pro Vás.
Kapitoly článku:
Směrodatná odchlyka
Protože ne všichni se matematikou denně zabývají (včetně mě) a někdo je ze školy už přeci jen nějaký ten pátek (včetně mě), pokusím se směrodatnou odchylku vysvětlit pomocí jednoduchého příkladu právě na grafických kartách. Samozřejmě že ten, kdo je ve směrodatných odchylkách zběhlý a ví, o čem je řeč, klidně může tuto kapitolu přeskočit.
Předpokládejme, že máme dvě grafické karty, které při testech vykázaly naprosto stejnou průměrnou snímkovou frekvenci o hodnotě 17 FPS. Průběh snímkových frekvencí obou grafických karet během testu je zobrazen v následujícím grafu.
Ačkoliv jsou průměrné FPS u obou grafických karet stejné, přeci jen z křivek, které definují průběhy snímkové frekvence obou karet, je patrné, že se tyto grafické karty výrazněji liší. Křivka snímkové frekvence GPU 1 (červená), tedy vlastně body, které ji tvoří, jsou od přímky průměrné snímkové frekvence (žlutá čára) vzdáleny více, než jak tomu je u GPU 2 (zelená). To samozřejmě znamená, že variabilita GPU 1 je vyšší než variabilita GPU 2. Pokud bychom si tedy mezi těmito dvěma grafickými kartami mohli vybrat tu lepší, jistě bychom sáhli po GPU 2, která nám garantuje nižší variabilitu snímkové frekvence a tím i nižší propady FPS.
Ne vždy jsou ale rozdíly variability snímkové frekvence tak markantní a na oko zřejmé, jako tomu je u našeho výše uvedeného grafu. Častěji to z grafu jen tak nepoznáte, a tak musí přijít na řadu matematika a nějaký ten výpočet. V našem případě výpočet směrodatné (standardní) odchylky.
Takto nějak vypadá vzorec pro výpočet standardní odchylky, ale abychom nespadli do nějakých hlubších matematických definicí, raději vše ukáži na příkladu. V našem případě nám směrodatná odchylka udává jakousi "průměrnou" vzdálenost bodů zkoumané křivky od svého těžiště, tedy průměrné snímkové frekvence a je počítána za pomocí rozptylu.
Máme-li řadu hodnot naměřené snímkové frekvence v čase:
Čas (s) | Snímková frekvence (FPS) |
1 | 66 |
2 | 60 |
3 | 50 |
4 | 64 |
5 | 66 |
Průměrná snímková frekvence = (66 + 60 + 50 + 64 + 66) / 5 = 61,2 FPS
Rozptyl nám udává, jak moc jsou naše hodnoty "rozptýleny" od svého průměru a vypočítá se jako průměr druhých mocnin jejich vzdálenosti od tohoto průměru.
1. ( 66 - 61,2 )2 = 23,04
2. ( 60 - 61,2 )2 = 1,44
3. ( 50 - 61,2 )2 = 125,44
4. ( 64 - 61,2 )2 = 7,84
5. ( 66 - 61,2 )2 = 23,04
Rozptyl = (23,04 + 1,44 + 125,44 + 7,84 + 23,04) / 5 = 36,16 ms2
Směrodatná odchylka je pak druhou odmocninou z našeho rozptylu
Směrodatná odchylka = √36,16 = 6,01 ms
V našem příkladu je směrodatná odchylka rovna hodnotě 6,01 FPS. Směrodatná odchylka nám tedy ukazuje, jaká je "průměrná" vzdálenost bodů křivky od svého těžiště (průměrné FPS). Mohli bychom konstatovat, že čím vyšší je hodnota směrodatné odchylky, tím vyšší je variabilita (větší vzdálenost od těžiště) a samozřejmě obráceně, čím nižší je hodnota směrodatné odchylky, tím je variabilita nižší. Ideálním (ale také nedosažitelným) stavem by byla nulová hodnota směrodatné odchylky, kdy všechny naměřené body snímkové frekvence by byly stejné a přímo tak ležely na přímce průměrné snímkové frekvence.
Jiným pohledem by se také dalo říci, že čím vyšší je hodnota směrodatné odchylky, tím menší vypovídající schopnost má průměrná hodnota snímkové frekvence a obráceně, čím nižší je hodnota směrodatné odchylky, tím je vypovídající schopnost průměrné snímkové frekvence vyšší.
Na výpočet směrodatné odchylky můžete využít rozličné nástroje, z nichž asi nejoblíbenějším by byl Microsoft Excel, nebo použít nějaký speciální software. My v našich recenzích využíváme nástroj nazvaný FLA Caculator (Frame Latency Analyzer Calculator), který nejenže umí z naměřených frame times vypočítat směrodatné odchylky snímkové frekvence, ale také odchylky stutteringu. Tento nástroj toho umí samozřejmě ještě daleko více, ale výpočty variability a stutteringu jsou právě tím, co nás teď nejvíce zajímá.
Pojďme se tedy podívat, jak jsou směrodatné odchylky variability snímkové frekvence a stutteringu počítány v praxi.