Entramos en la batalla de los teraflops

En el anterior artículo vimos cómo entró el PC a nuestras vidas y dimos un repaso a los distintos modos gráficos que dieron la luz hasta la llegada del estándar VESA SVGA. En este artículo daremos una primera introducción sobre unos chips que están tan ligados al mundo de los videojuegos que sin ellos la industria no habría evolucionado hasta llegar al camino que recorremos ahora. Hoy hablaremos de los primeros chips de vídeo, que posteriormente evolucionaron en lo que son las tarjetas gráficas.
Tron

Tron (Commodore PET)

Antiguamente, los primeros ordenadores estaban preparados para mostrar sólo texto. Esto lo conseguían almacenando en el espacio de la memoria principal de la computadora, una matriz de un número determinados de filas y columnas, donde cada celda almacena la información correspondiente a una letra (en IBM/PC por ejemplo, el modo de texto más usado era de 85 columnas por 25 filas). El chip principal era el que se encargaba de procesar la información de esta matriz y enviarla al monitor para que se mostrase la imagen al usuario. Pero, conforme iban saliendo los ordenadores personales y la tecnología comenzó a despegar, los fabricantes de ordenadores facilitarían un nuevo modo que daría más libertad al usuario para poder mostrar gráficos e imágenes en la pantalla, este modo, es el que se conoce como modo gráfico.

California games en ZX spectrum

California Games (v. ZX Spectrum)

El modo gráfico, al igual que el modo de texto, también guarda la información en una matriz de filas y columnas (que llamaremos resolución a partir de ahora), pero la información que contendría cada celda (llamado píxel) sería el color que queríamos mostrar en pantalla. Para poner un ejemplo de un ordenador del que ya hemos hablado largo y tendido en nuestros artículos, ZX Spectrum tenía un modo gráfico de una resolución de 256 columnas por 192 filas, donde cada píxel – sin entrar en muchos detalles, ya que es algo más complicado – podría ser de hasta 15 colores distintos. Como podemos ver, la cantidad de información que hay que guardar y procesar ha aumentado exponencialmente, ya que la resolución rápidamente acabó pasando de meras 40 columnas o 80 columnas a 256 columnas.

Por ello, debido a las altas exigencias de procesamiento y memoria principal que exigía este tipo de modos, los ordenadores comenzaron a llevar un co-procesador y memoria preparados para llevar toda la carga de la muestra de gráficos a la pantalla y es así como nacen los chips y memoria de video. Quizás el ejemplo perfecto sobre por qué era necesario liberar esta carga al procesador principal lo podemos ver en la diferencia gráfica entre los juegos del ordenador ZX Spectrum, que no disponía de chip gráfico para abaratar el sistema y Commodore 64, que sí disponía de un chip externo que se encargaba de este trabajo.


Con el auge de los videojuegos en la década de los 80, las placas arcades y consolas de sobremesa irían añadiendo chips gráficos con ciertas capacidades y funcionalidades extras para que los programadores puedan mostrar más y mejores gráficos. Funcionalidades como la inclusión de sprites, pequeñas imágenes guardadas en la zona de memoria gráfica que permitían a los chips gráficos, operar previamente con ellas (con operaciones como translación o rotación) y añadirlos a la imagen final, o el scrolling de planos, que consiste en mover una imagen de fondo para dar una sensación de velocidad.

Si vemos el chip gráfico de Nintendo NES encontramos un procesador gráfico llamado PPU o Picture Processor Unit que, junto a su procesador principal, permite almacenar hasta 64 sprites del tamaño de 8×8 píxeles – 8 pixeles en horizontal por 8 en vertical – u 8×16, además de poder realizar un scrolling horizontal sobre un plano de fondo y generar imágenes de una resolución de 256 píxeles de ancho por 240 de alto, con la posibilidad de mostrar hasta 8 sprites distintos en una misma imagen. Quizás se nos viene a la cabeza la pregunta, para qué puede la consola de Nintendo almacenar 64 sprites si solo puede mostrar 8 en cada imagen, la respuesta es la mayoría de consolas, y entre ellas NES, envía 50 o 60 imágenes distintas por segundo al televisor para darnos la sensación, como hace el cine, de movimiento. La consola, por tanto, podía mandar en cada imagen generada de esas 60, 8 sprites distintos hasta haber mostrado los 64 y repetir el proceso. Debido a la rapidez en la que pasa todo esto, el usuario podría ver una gran cantidad de sprites moviéndose por la pantalla donde sólo se apreciaría un ligero parpadeo. Por supuesto, la pericia de los programadores y otros chips contenidos en el cartucho con capacidad de operaciones extras hicieron que NES tuviese capacidades que no fueron originalmente pensadas en la consola, por ejemplo Super Mario Bros 3 y Kirby, permite scrolling horizontal y vertical simultáneo.

Tras Nintendo NES, la siguiente generación de consolas más conocidas fueron Mega Drive y Super Nintendo. Estos aumentan sustancialmente tanto la cantidad de memoria dedicada como la potencia del chip gráfico para mostrar aun mejores y más coloridos gráficos. Tal que así vemos como Mega Drive ya puede trabajar con dos planos de manera independiente – de manera vertical y horizontal -, así como una mayor cantidad de sprites tanto en memoria como en pantalla – pasamos de guardar 64 a 80 sprites y poder mostrar hasta 20 a la vez en cada imagen -. Para culminar, Mega Drive hace uso del procesador que tenía (que hemos hablado previamente de él en este artículo) para la realización de ciertos efectos que no se podían hacer con el chip gráfico y había juegos con unos capacidades gráficas bastantes impactantes para la época. Vemos en juegos como Thunderforce IV cómo fuerzan el número de planos a una mayor cantidad o simulan estar debajo del agua distorsionando la imagen de fondo, cómo Sonic genera una sensación de velocidad muy alta gracias a la velocidad del scrolling de los planos o cómo Castlevania Bloodlines hace uso de reflejos para mostrar el comportamiento del agua.

Los chicos de Nintendo, tenía un chip principal bastante más lento que la consola de SEGA, pero que gracias a su chip gráfico que claramente supera a su competidora podría mostrar unos gráficos en teoría mucho mejores que los de SEGA. El chip gráfico de Super Nintendo permite trabajar con hasta 4 planos de fondo de manera independiente, almacenar hasta 128 sprites en memoria y mostrar hasta 32 de ellos en cada imagen. Además, Nintendo incluyó en este chip, una serie de operaciones sobre sprites y fondos con la intención de que se pudiesen utilizar para producción de cada imagen final conocidos como modos de video. Super Nintendo implemento hasta 8 de estos llamados modos y aunque no hablaremos de ellos, si que haremos alusión al gran modo 7, que deformaba la imagen de fondo de tal manera que daba una sensación de perspectiva 3D. Castlevania IV, por ejemplo, hace uso extenso de estos modos de video para sus fases y bosses finales, y numerosos juegos de coches como Mario Kart o F-Zero utilizaban modo 7 para representar la pista por la que se mueven los jugadores.

Hemos visto cómo las consolas iban cada vez insertando chips con cada vez con más capacidad de hacer operaciones extras para formar la imagen final. Pero esto no era lo que aconteció en el mundo del PC hasta la llegada de las tarjetas aceleradoras 2D/3D. Las antiguas tarjetas gráficas que cumplían los estándares de modos de video y que vimos en el anterior artículo no podía por ejemplo realizar scrolling de planos como en las consolas. Es por ello que, todo efecto gráfico tenia que ser programado minuciosamente. Esto lo podemos ver claramente en los juegos de PC de los años 80, podemos apreciar que los juegos no son tan punteros como vemos en NES – el scrolling de fondo no es fluido y hay una limitada cantidad de enemigos en pantalla – . No es hasta la llegada de – sobre todo – ciertos genios de la programación como John Carmack – que, gracias a la aplicación de algoritmos de renderizado muy optimizados, que creaban la imagen a mostrar en el monitor en cuestión de instantes – cuando finalmente podemos ver juegos con gráficos parecidos a los de consola. Podemos ver, por ejemplo, cómo Commander Keen o Dangerous Dave, programado por Carmack y John Romero, hace uso de la técnica “adaptive tile refresh”, que consiste en solamente redibujar los píxeles que cambian conforme la pantalla anterior en vez de redibujar una imagen completa 60 veces por segundo, para mostrar el primer scroll fluido, o cómo hace uso Wolfenstein 3D del “RayCasting”, un algoritmo de renderizado que conseguía mostrar gráficos pseudo3D sin apenas demanda de cálculo.


En el siguiente artículo hablaremos de los primeros juegos 3D y sobre tarjetas aceleradoras 2D/3D que es la tecnología que reina en nuestros hogares.