Articulo de referencia

Actualización adaptativa de mosaicos

La actualización adaptativa de mosaicos es una técnica de gráficos por computadora para videojuegos de desplazamiento lateral . Fue utilizada de manera más famosa por John Carma...

La actualización adaptativa de mosaicos es una técnica de gráficos por computadora para videojuegos de desplazamiento lateral . Fue utilizada de manera más famosa por John Carmack de id Software en juegos como Commander Keen para compensar el bajo rendimiento gráfico de las PC a principios de la década de 1990. Su principal innovación es un uso novedoso de varias características de hardware EGA para realizar el desplazamiento en hardware. La técnica recibe su nombre por su otro aspecto, el seguimiento de elementos gráficos movidos para minimizar la cantidad de redibujado necesario en cada fotograma. En conjunto, la combinación ahorra el tiempo de procesamiento que de otro modo se requeriría para redibujar toda la pantalla. [ 1 ] : 50 Carmack diseñó el motor de software basado en una pantalla de desplazamiento para imágenes grandes de la década de 1970. [ 2 ]

La generación gráfica de IBM PC anterior a EGA es CGA , que carece de características para un desplazamiento horizontal fluido en hardware. Por lo tanto, el desplazamiento CGA generalmente se realiza por software, redibujando toda la pantalla para cada fotograma, algo que los primeros sistemas IBM PC no tenían el rendimiento suficiente para realizar en animaciones a pantalla completa. La actualización adaptativa de mosaicos minimiza la potencia de cálculo necesaria para que los juegos de desplazamiento lateral estén al alcance del hardware actual. Esto funciona marcando los mosaicos de mapa de bits y redibujando solo los gráficos en pantalla que realmente se actualizan. [ 3 ]

Historia

La actualización adaptativa de mosaicos mediante desplazamiento por hardware debutó en el prototipo inédito Dangerous Dave in Copyright Infringement , implementado por Carmack. El título de " Dangerous Dave " ya había sido utilizado por John Romero mientras programaba juegos para Softdisk . Este se desarrolló en una semana como una recreación del primer nivel de Super Mario Bros. 3 de Nintendo , concebido como un prototipo realista del concepto de actualización adaptativa de mosaicos. El equipo de futuros empleados de id Software, que aún trabajaban para Softdisk, completó la réplica del juego completo, que se ofreció a Nintendo para su licencia para PC. Nintendo rechazó la propuesta después de que id Software terminara el prototipo. [ 4 ] [ 5 ] [ 1 ]

La primera vez que se utilizó la función de actualización adaptativa de mosaicos de Carmack fue en la primera entrega de la serie de juegos Commander Keen de id Software , Marooned on Mars .

Detalles técnicos

EGA cuenta con varias características que permiten el efecto de actualización adaptativa de los mosaicos:

  1. El búfer de fotogramas puede ser más ancho que la pantalla y tener una altura arbitraria, sujeto a las limitaciones de la memoria de vídeo .
  2. La posición dentro de este búfer desde la que se dibuja la pantalla se puede desplazar en incrementos de 1 píxel, ya sea horizontal o verticalmente.
  3. Tiene suficiente memoria de vídeo para almacenar dos de esos búferes de pantalla, además de mosaicos y sprites .

Carmack aprovechó estas capacidades para crear un búfer 64 píxeles más ancho y alto que la pantalla, dejando espacio para dos filas y columnas adicionales de mosaicos en el búfer, fuera del borde de la pantalla. Utilizó las capacidades de desplazamiento de la tarjeta para que la pantalla se deslizara a través del búfer, logrando un desplazamiento suave que revelaba parcialmente los mosaicos adicionales.

Cuando la porción visible llega al final del búfer, la posición del búfer se desplaza hacia atrás una casilla y las casillas modificadas se vuelven a dibujar. [ 6 ] Esto hizo que la técnica dependiera de casillas repetidas para limitar la cantidad de casillas que se volvían a dibujar. [ 7 ]

Otra versión de la técnica introducida en Commander Keen en Keen Dreams envuelve la memoria EGA para mostrar datos del otro lado del búfer. [ 7 ] Para desplazarse por un nivel completo, cuando el desplazamiento equivale a una casilla completa, la siguiente fila de casillas del nivel se dibuja en el búfer, justo fuera del borde de la pantalla, lista para ser mostrada cuando el desplazamiento continúa en esa dirección.

Dado que solo se redibujan los bordes de la pantalla en cada momento, los sprites en la parte visible de la pantalla no se redibujarían hasta que llegaran al borde. Para evitar esto, el código calcula qué casillas había cubierto previamente un sprite en movimiento y las redibuja para borrar la imagen anterior, luego dibuja la nueva imagen del sprite en su nueva posición. Esto permite animar los sprites independientemente del desplazamiento con un mínimo esfuerzo computacional.

Debido a que mover un sprite de esta manera implica primero borrarlo y luego volver a dibujarlo, la imagen del sprite borrado puede ser visible brevemente, causando parpadeo. La parte final de la técnica de Carmack consiste en usar las mismas funciones de desplazamiento del hardware EGA para implementar también el doble búfer . Esto establece un segundo búfer en el que el código puede dibujar mientras se muestra el primero, el cual se reemplaza durante la actualización de la pantalla. Esto garantiza que ningún fotograma se muestre a mitad del dibujo, lo que produce una animación fluida y sin parpadeos.

Referencias

  1. 1 2 Kushner, David (2004) [2003]. Maestros de la perdición: cómo dos tipos crearon un imperio y transformaron la cultura pop . Nueva York, NY: Random House, Inc. ISBN 9780375505249OCLC 50129329 
  2. Kushner, David (1 de agosto de 2002). "La magia del software de videojuegos de Id" . IEEE Spectrum . Recuperado el 13 de abril de 2018 .
  3. Aycock, John (9 de mayo de 2016). Retrogame Archeology: Exploring Old Computer Games . Springer. p. 45. doi : 10.1007/978-3-319-30004-7 . ISBN  978-3-319-30004-7. S2CID 20655963 . Consultado el 27 de noviembre de 2017 . 
  4. Demo de Super Mario Bros. 3 (1990) . John Romero. 1990. Archivado del original el 15 de diciembre de 2015. Recuperado el 15 de diciembre de 2015 .
  5. Orland, Kyle (14 de diciembre de 2015). "Así podría haber sido la versión para PC de Mario 3 de id Software" . Ars Technica. Archivado del original el 10 de marzo de 2016. Consultado el 15 de diciembre de 2015 .
  6. Carmack, John. "Tweet 6:53 PM · Jul 11, 2020" . Twitter . Consultado el 19 de enero de 2024 .
  7. 1 2 Carmack, John. "Tweet 9:52 PM · Sep 14, 2018" . Twitter . Archivado del original el 19 de enero de 2024. Recuperado el 19 de enero de 2024 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Adaptive_tile_refresh&oldid=1327367756 "