¿Qué es una cadena de intercambio?

Una cadena de intercambio es una serie de búferes de fotogramas, o ubicaciones en la memoria de la computadora, que se utilizan para representar una imagen antes de que se muestre en un monitor real u otro dispositivo. Siempre hay al menos dos framebuffers en una cadena de intercambio porque el primer búfer, o activo, generalmente se identifica como el que se muestra actualmente en la pantalla. Mientras se muestra un búfer de fotogramas, el siguiente búfer se puede renderizar y preparar para su visualización y luego intercambiar al dispositivo según sea necesario. El uso de una cadena de intercambio puede eliminar algunos de los problemas que se producen debido a los conflictos entre la sincronización del hardware y el software, así como los artefactos gráficos que pueden aparecer debido al procesamiento directamente en el dispositivo de visualización.

La forma en que se muestra una imagen en un monitor es realmente solo una cuestión de colocar la secuencia correcta de números en un área específica de la memoria. Todo lo que hay en esta área de la memoria se dibuja en la pantalla varias veces por segundo. Se dibuja una pantalla en líneas horizontales desde la esquina superior izquierda hasta la esquina inferior derecha. El momento en que la pantalla comienza el siguiente fotograma, cuando se mueve desde la esquina inferior derecha de la pantalla a la esquina superior izquierda, se conoce como retroceso vertical.

Las implementaciones de un búfer de intercambio solo se dibujan en la pantalla durante el retroceso vertical. Si este tiempo está desactivado, o si un programa intenta dibujar en una pantalla durante los períodos en los que se está renderizando un fotograma, puede aparecer una anomalía gráfica conocida como lágrima. Esto ocurre cuando la imagen en la memoria del dispositivo de visualización cambia repentinamente en medio del renderizado, lo que hace que un lado de la pantalla muestre el último fotograma y el resto de la pantalla muestre el nuevo.

Al procesar una escena con anticipación en un búfer de fotogramas, el siguiente fotograma que se mostrará ya está preparado y se puede insertar rápidamente en la memoria de pantalla para que se muestre. Mientras se muestra una imagen, la siguiente se dibuja en el búfer de fotogramas inactivo, también llamado búfer de retroceso. Esto crea animaciones suaves y efectos visuales que se pueden sincronizar exactamente para evitar la rotura.

El término «cadena de intercambio» se conoce más comúnmente como almacenamiento en búfer doble o almacenamiento en búfer triple, según el número de fotogramas que se dibujan antes del búfer de fotogramas activo. El uso de algoritmos de temporización de nanosegundos o milisegundos es una parte esencial del uso de una cadena de intercambio para garantizar que no se exceda la velocidad máxima de fotogramas del monitor y que los programas puedan controlar su propio procesamiento y recursos en un sistema. El empleo de una cadena de intercambio, si se implementa correctamente, puede dar como resultado animaciones fluidas independientemente de las propiedades de un dispositivo de visualización o la cantidad de tiempo que se necesita para renderizar un solo cuadro de animación.