Co to jest łańcuch wymiany?
Łańcuch wymiany to seria buforów ramek lub lokalizacji w pamięci komputera, które są używane do renderowania obrazu, zanim zostanie wyświetlony na rzeczywistym monitorze lub innym urządzeniu. Zawsze są co najmniej dwa bufory ramki w łańcuchu wymiany, ponieważ pierwszy lub aktywny bufor jest zwykle identyfikowany jako ten aktualnie wyświetlany na wyświetlaczu. Podczas wyświetlania jednego bufora ramki, następny bufor może zostać zrenderowany i przygotowany do wyświetlenia, a następnie w razie potrzeby zamieniony na urządzenie. Korzystanie z łańcucha wymiany może wyeliminować niektóre problemy, które występują z powodu konfliktów między sprzętem i czasem oprogramowania, a także artefakty graficzne, które mogą pojawić się z powodu renderowania bezpośrednio na urządzeniu wyświetlającym.
Sposób wyświetlania obrazu na monitorze jest tak naprawdę kwestią umieszczenia prawidłowej sekwencji liczb w określonym obszarze pamięci. Cokolwiek jest w tym obszarze pamięci, jest rysowane na ekranie kilka razy na sekundę. Ekran jest rysowany poziomymi liniami od lewego górnego rogu do prawego dolnego rogu. Moment, w którym ekran rozpoczyna następną klatkę, kiedy przesuwa się z prawego dolnego rogu ekranu do lewego górnego rogu, jest znany jako powrót pionowy.
Implementacje bufora wymiany rysują tylko na ekranie podczas powrotu pionowego. Jeśli ten czas jest wyłączony lub jeśli program próbuje rysować na ekranie podczas okresów renderowania ramki, może pojawić się graficzna anomalia zwana łzą. Dzieje się tak, gdy obraz w pamięci urządzenia wyświetlającego zostaje nagle zmieniony w trakcie renderowania, powodując, że jedna strona wyświetlacza pokazuje ostatnią klatkę, a reszta ekranu pokazuje nową.
Dzięki renderowaniu sceny z wyprzedzeniem w buforze klatek, kolejna wyświetlana klatka jest już przygotowana i może być szybko wepchnięta do pamięci wyświetlania, aby ją wyświetlić. Podczas wyświetlania jednego obrazu, następny jest rysowany w nieaktywnym buforze ramek, zwanym także buforem wstecznym. Tworzy to płynne animacje i efekty wizualne, które mogą być dokładnie taktowane, aby zapobiec rozerwaniu.
Termin „łańcuch wymiany” jest bardziej znany jako podwójne buforowanie lub potrójne buforowanie, w zależności od liczby ramek narysowanych przed aktywnym buforowaniem ramek. Korzystanie z algorytmów synchronizacji w nanosekundach lub milisekundach jest istotną częścią korzystania z łańcucha wymiany, aby zapewnić, że maksymalna liczba klatek na sekundę monitora nie zostanie przekroczona, a programy będą mogły stymulować własne przetwarzanie i zasoby w systemie. Zastosowanie łańcucha wymiany, jeśli jest odpowiednio zaimplementowane, może powodować płynne animacje niezależnie od właściwości urządzenia wyświetlającego lub czasu potrzebnego do renderowania pojedynczej klatki animacji.