Che cos’è una catena di scambio?

Una catena di scambio è una serie di framebuffer, o posizioni nella memoria del computer, utilizzati per eseguire il rendering di un’immagine prima che venga visualizzata su un monitor reale o su un altro dispositivo. Ci sono sempre almeno due framebuffer in una catena di scambio perché il primo, o buffer attivo, è solitamente identificato come quello attualmente mostrato sul display. Mentre viene visualizzato un framebuffer, il buffer successivo può essere renderizzato e preparato per la visualizzazione e quindi scambiato sul dispositivo secondo necessità. L’utilizzo di una catena di scambio può eliminare alcuni dei problemi che si verificano a causa dei conflitti tra i tempi hardware e software, nonché gli artefatti grafici che possono apparire a causa del rendering direttamente sul dispositivo di visualizzazione.

Il modo in cui un’immagine viene mostrata su un monitor è in realtà solo questione di posizionare la corretta sequenza di numeri in un’area specifica della memoria. Qualunque cosa si trovi in ​​quest’area di memoria viene disegnata sullo schermo più volte al secondo. Uno schermo viene disegnato in linee orizzontali dall’angolo in alto a sinistra all’angolo in basso a destra. Il momento in cui lo schermo inizia il fotogramma successivo, quando si sposta dall’angolo in basso a destra dello schermo all’angolo in alto a sinistra, è noto come ritraccia verticale.

Le implementazioni di un buffer di scambio disegnano sullo schermo solo durante il ritracciamento verticale. Se questa temporizzazione è disattivata o se un programma tenta di disegnare su uno schermo durante i periodi in cui viene eseguito il rendering di un fotogramma, può apparire un’anomalia grafica nota come strappo. Ciò si verifica quando l’immagine nella memoria del dispositivo di visualizzazione viene cambiata improvvisamente nel mezzo del rendering, facendo sì che un lato del display mostri l’ultimo fotogramma e il resto dello schermo mostri quello nuovo.

Rendendo una scena in anticipo in un framebuffer, il fotogramma successivo da visualizzare è già preparato e può essere rapidamente inserito nella memoria del display in modo che venga mostrato. Mentre viene visualizzata un’immagine, la successiva viene disegnata nel framebuffer inattivo, chiamato anche back buffer. Questo crea animazioni fluide ed effetti visivi che possono essere sincronizzati esattamente per evitare strappi.

Il termine “swap chain” è più comunemente noto come doppio buffering o triplo buffering, a seconda del numero di frame disegnati prima del framebuffer attivo. L’utilizzo di algoritmi di temporizzazione in nanosecondi o millisecondi è una parte essenziale dell’utilizzo di una catena di scambio per garantire che la frequenza di fotogrammi massima del monitor non venga superata e che i programmi possano regolare la propria elaborazione e le risorse su un sistema. L’utilizzo di una catena di scambio, se implementata correttamente, può produrre animazioni fluide indipendentemente dalle proprietà di un dispositivo di visualizzazione o dalla quantità di tempo necessaria per eseguire il rendering di un singolo fotogramma di animazione.