Mis on vahetuskett?

Vahetusahel on rida kaadripuhvreid või asukohti arvutimälus, mida kasutatakse pildi renderdamiseks enne selle kuvamist tegelikul monitoril või muul seadmel. Vahetusahelas on alati vähemalt kaks kaadripuhvrit, sest esimene ehk aktiivne puhver tuvastatakse tavaliselt ekraanil kuvatavana. Ühe kaadripuhvri kuvamise ajal saab järgmise puhvri renderdada ja kuvamiseks ette valmistada ning seejärel vajaduse korral seadme vastu vahetada. Vahetusahela kasutamine võib kõrvaldada mõned probleemid, mis tekivad riistvara ja tarkvara ajastuse konfliktidest, samuti graafilised artefaktid, mis võivad ilmneda otse kuvarisse renderdamisel.

Kujutise kuvamisviis monitoril on tegelikult vaid õige numbrijada paigutamine määratud mälualale. Kõik, mis selles mälupiirkonnas on, joonistatakse ekraanile mitu korda sekundis. Ekraan joonistatakse horisontaalsete joontega vasakust ülanurgast paremasse alanurka. Hetke, mil ekraan alustab järgmist kaadrit, kui see liigub ekraani paremast alanurgast vasakusse ülanurka, nimetatakse vertikaalseks tagasijäljeks.

Vahetuspuhvri rakendused tõmbavad ekraanile ainult vertikaalse tagasijälje ajal. Kui see ajastus on välja lülitatud või kui programm üritab kaadri renderdamise ajal ekraanile joonistada, võib ilmneda graafiline anomaalia, mida nimetatakse rebendiks. See juhtub siis, kui kuvari mälus olevat pilti äkitselt renderdamise ajal muudetakse, mille tulemusena kuvatakse ekraani ühel küljel viimane kaader ja ülejäänud ekraanil uus kaader.

Renderdades stseeni enne tähtaega kaadripuhvrisse, on järgmine kuvatav kaader juba ette valmistatud ja selle saab kuvamiseks kiiresti kuvamällu lükata. Ühe pildi kuvamise ajal joonistatakse passiivsesse kaadripuhvrisse järgmist, mida nimetatakse ka tagapuhvriks. See loob sujuvaid animatsioone ja visuaalseid efekte, mida saab rebenemise vältimiseks täpselt ajastada.

Mõistet “vahetusahel” tuntakse sagedamini kui topeltpuhverdamist või kolmekordset puhverdamist, olenevalt aktiivse kaadripuhvri ette joonistatud kaadrite arvust. Nanosekundite või millisekundite ajastusalgoritmide kasutamine on vahetusahela kasutamise oluline osa tagamaks, et monitori maksimaalset kaadrisagedust ei ületata ja et programmid saaksid süsteemis oma töötlust ja ressursse ajastada. Vahetusahela kasutamine, kui see on õigesti rakendatud, võib põhjustada sujuvaid animatsioone, olenemata kuvaseadme omadustest või ajast, mis kulub ühe animatsioonikaadri renderdamiseks.