2017. november 23., csütörtök

Vertikális szinkron (V-Sync vagy Vsync)

  • (p)
Írta: Daywalker | Utoljára frissítve: 2013-10-25 17:25

A képkockaszámítás a PC-n belül zajlik, aminek az eredménye egy kész képkockát leíró adathalmaz, melyet a rendszer a kijelző felé továbbít, ami végül látható képként jelenik meg az adott monitoron. Ez mindenhol, minden összeállítással így működik, és minden esetben elmondható az is, hogy nincs igazán tökéletes szinkron a PC és a monitor között. Elvben az lenne a jó, ha a játékok is olyanok lennének, mint a filmek: fix sebességűek, amihez tökéletesen igazodna az adott kijelző frissítési frekvenciája is. Erre ma is látunk példákat, hiszen a filmek egy adott frissítéssel (képkockaszámmal) vannak rögzítve, és ehhez igazítva a kijelző frissítését közel ideális élményt kap néző. A gond ott kezdődik, hogy a játék nem film, vagyis a futás sebessége nem fix.

Az emiatt felmerülő szinkronprobléma egyik megoldása lehet a V-Sync, azaz a vertikális szinkron, aminek a működése nagyjából annyit tesz, hogy a kijelző frissítési frekvenciájához igazítja az új képkockák megjelenítésének ütemét. Ez a megoldás addig tökéletesen működik, amíg az adott program futtatási sebessége megegyezik vagy képes meghaladni a monitor frissítési frekvenciáját – itt be lehet vetni minden extrát, elsődlegesen gondolva a tripla pufferelésre, hogy az a követelmény teljesüljön. Előfordulhat azonban, hogy a játék futtatási sebessége a kijelző frissítési frekvenciája alá esik, és ilyen esetben a monitor nem tud új képkockát kitenni. Ebben az esetben az egyetlen lehetőség, hogy az előző képkocka kerül megint a képernyőre, ami viszont apró akadást okozhat, de nem minden esetben! Elsősorban azért, mert nem mindegy, hogy a vertikális szinkron milyen frissítési frekvenciát történik. A felhasználók által használt 60 Hz-en nyilván észrevehető akadás jelentkezik, de a V-Sync 120 és 144 Hz-es kijelzőknél már kevésbé vagy egyáltalán nem észrevehető, ha a kijelzőnek meg kell dupláznia egy képkockát. Persze fontos, hogy minden esetben azt feltételezzük, hogy az adott grafikus processzor képes kiszámolni minimum annyi képet, amennyi szükséges a jó hatásfokú szinkron fenntartása érdekében, azaz a 60, 120 és 144 Hz-hez rendre 60, 120 és 144 képkockát másodpercenként.

A "Tearing" effektus
A "Tearing" effektus

Amennyiben a fenti lehetőség nem teljesül, akkor jönnek csak az igazi gondok. Tegyük fel a 60 Hz-es szinkronnal a 40 képkocka/másodperces sebességet tudunk megjeleníteni. Ez nem éppen ideális, mivel elég sokszor lesz megduplázva egy-egy megjelenített képkocka, ebből kifolyólag pedig elég sok apró akadást kapunk eredményül. Ilyenkor a vertikális szinkron kikapcsolása a járható út. Az apró akadások ennek hála megszűnnek, viszont bejön egy másik probléma: a képtörés, aminek oka tulajdonképpen egyszerű. Tegyük fel, hogy két képkockapuffer is van a VRAM-ban, amiből az egyik mindig a valós képkockát tárolja, vagyis azt amit kijelző aktuálisan rajzol, míg a másik a háttérpuffer, amiben éppen készül egy új képkocka. Mivel a PC-n belül a feldolgozás folyamatos, így a háttérpufferben elkészült képkocka azonnal átkerül a valós képkockát tároló pufferbe, innen pedig egyből a monitorra kerül. Másképpen fogalmazva, kikapcsolt V-Sync mellett nincs szinkron, a képkockák továbbítása az elkészülés ütemének megfelelően történik, kvázi a grafikus vezérlő maximális tudását kihasználva, tehát függetlenül attól, hogy az előző képkockát sikerült-e már teljesen kirajzolni vagy sem. Emiatt előfordul, hogy a kijelző esetleg félig már kirajzolta az adott képkockát, de a következő pixelsort vagy félképet már az időközben megcserélődött puffertartalom miatt az új képkocka megfelelő sorából rajzolja - mivel monitor e tekintetben passzív eszköz, így nem tudja, hogy a rendszer időközben megcserélte a pufferek tartalmát - tehát képtörés jön létre.

 

Ha pontatlanságot találsz a cikkben, kérjük, írd meg a szerzőnek!
A bejegyzés utolsó frissítésének időpontja: 2013-10-25 17:25

Hi​r​d​e​t​é​s​

H​i​r​d​et​é​s​

Copyright © 2000-2017 PROHARDVER Informatikai Kft.