Poruchy plynulosti pohybu v počítačových hrách
30.10.2015, Pavel Šantrůček, recenze
![Poruchy plynulosti pohybu v počítačových hrách](navstevnost-a-redakce/1/img/website-800.jpg)
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:
Náš dnešní článek bude věnován poruchám, které při hraní počítačových her někdy vůbec nezpozorujete, ale někdy jsou zase natolik nepříjemné a do očí bijící, že vám dokáží vaši oblíbenou počítačovou hru pěkně znechutit. Řeč bude o poruchách plynulosti pohybu, resp. o plynulosti renderování snímků grafickou kartou v počítačových hrách, jejich příčinách a samozřejmě jejich odhalení a měření.
Poruchy plynulosti pohybu v počítačových hrách můžeme rozdělit do několika skupin:
Nejdříve by ale bylo dobré si osvětlit pár pojmů z teorie, které s touto problematikou úzce souvisejí a bez jejichž vysvětlení bychom se daleko nedostali.
Latence snímku
Latence je doba, kterou grafická karta potřebuje na vykreslení jednoho snímku scény počítačové hry do frame bufferu. Pokud je scéna nějak komplexnější (více objektů ve scéně, náročnější efekty atd.), je jisté, že grafická karta potřebuje k jejímu vykreslení více času (latence je vyšší), než když je scéna méně náročná (latence je nižší). Latence je tedy doba, po kterou grafická karta vykresluje jeden snímek a její jednotka je uváděna v milisekundách (ms).
Frame time
Frame time je podobně jako latence také dobou, tentokráte ale dobou mezi zobrazením dvou snímků. Někdy je tato doba označována také jako frame interval.
![Latence vs Frame time](recenze-poruchy-plynulosti-pohybu-v-pocitacovych-hrach/41290/img/latence-vs-frame-time.jpg)
Ačkoliv to někomu může ve výsledku připadat tak, že vlastně není žádný rozdíl mezi definicí latence a frame time, věřte, že tomu tak není a rozdíl je někdy zásadní a obrovský. Pro vysvětlení a pochopení rozdílu mezi latencí a frame time raději uvedu jeden příklad.
Hrajete počítačovou hru se zapnutým VSync na 60Hz monitoru. Grafická karta vyrenderuje snímek za 10 ms, ale musí čekat se Swap (tedy přehození adresy front/back bufferu) dalších 6,67 ms do doby vertikální synchronizace obrazu (60 Hz = 16.67 ms). V tomto případě je latence rovna 10 ms, avšak frame time je 16,67 ms. Samozřejmě pokud bychom měli v této hře VSync vypnuto, pak by si latence i frame time byly rovny a jejich hodnota by byla shodných 10 ms.
V dnešním článku už budeme dále pracovat pouze s Frame time, protože doba (interval) mezi zobrazováním snímků je právě to, co nás bude nejvíce zajímat.
Při měření výkonu grafických karet v počítačových hrách jsou nejčastěji grafické karty mezi sebou porovnávány za pomoci dosažených hodnot průměrné snímkové frekvence. Na tom není nic špatného a dělalo se to tak od samého počátku, problémem ale je, že samotná hodnota průměrné snímkové frekvence v sobě nezohledňuje různé poruchy při renderování. A tak se vám může snadno stát, že si s grafickou kartou, která dosahuje nižší snímkovou frekvenci, častokrát zahrajete hru mnohem kvalitněji a lépe, než s grafickou kartou, která dosahuje vyšší snímkové frekvence. Pojďme se tedy na tyto poruchy plynulosti pohybu podívat podrobněji.
Poruchy plynulosti pohybu v počítačových hrách můžeme rozdělit do několika skupin:
- Variabilita snímkové frekvence
- Stuttering
- Micro-stuttering
Nejdříve by ale bylo dobré si osvětlit pár pojmů z teorie, které s touto problematikou úzce souvisejí a bez jejichž vysvětlení bychom se daleko nedostali.
Latence snímku
Latence je doba, kterou grafická karta potřebuje na vykreslení jednoho snímku scény počítačové hry do frame bufferu. Pokud je scéna nějak komplexnější (více objektů ve scéně, náročnější efekty atd.), je jisté, že grafická karta potřebuje k jejímu vykreslení více času (latence je vyšší), než když je scéna méně náročná (latence je nižší). Latence je tedy doba, po kterou grafická karta vykresluje jeden snímek a její jednotka je uváděna v milisekundách (ms).
Frame time
Frame time je podobně jako latence také dobou, tentokráte ale dobou mezi zobrazením dvou snímků. Někdy je tato doba označována také jako frame interval.
![Latence vs Frame time](recenze-poruchy-plynulosti-pohybu-v-pocitacovych-hrach/41290/img/latence-vs-frame-time.jpg)
Ačkoliv to někomu může ve výsledku připadat tak, že vlastně není žádný rozdíl mezi definicí latence a frame time, věřte, že tomu tak není a rozdíl je někdy zásadní a obrovský. Pro vysvětlení a pochopení rozdílu mezi latencí a frame time raději uvedu jeden příklad.
Hrajete počítačovou hru se zapnutým VSync na 60Hz monitoru. Grafická karta vyrenderuje snímek za 10 ms, ale musí čekat se Swap (tedy přehození adresy front/back bufferu) dalších 6,67 ms do doby vertikální synchronizace obrazu (60 Hz = 16.67 ms). V tomto případě je latence rovna 10 ms, avšak frame time je 16,67 ms. Samozřejmě pokud bychom měli v této hře VSync vypnuto, pak by si latence i frame time byly rovny a jejich hodnota by byla shodných 10 ms.
V dnešním článku už budeme dále pracovat pouze s Frame time, protože doba (interval) mezi zobrazováním snímků je právě to, co nás bude nejvíce zajímat.
Při měření výkonu grafických karet v počítačových hrách jsou nejčastěji grafické karty mezi sebou porovnávány za pomoci dosažených hodnot průměrné snímkové frekvence. Na tom není nic špatného a dělalo se to tak od samého počátku, problémem ale je, že samotná hodnota průměrné snímkové frekvence v sobě nezohledňuje různé poruchy při renderování. A tak se vám může snadno stát, že si s grafickou kartou, která dosahuje nižší snímkovou frekvenci, častokrát zahrajete hru mnohem kvalitněji a lépe, než s grafickou kartou, která dosahuje vyšší snímkové frekvence. Pojďme se tedy na tyto poruchy plynulosti pohybu podívat podrobněji.