Gráficos en Consolas Antiguas (XVI): El Triangle Setup

¿Que es lo que llevo a que consolas como Sega Saturn y 3DO no fueran buenas para el 3D? Pues el hecho que sus procesadores gráficos no fuesen capaces de trabajar con triangulos que es la forma estandar en la que se presentan los gráficos en 3D a tiempo real cuando se utilizan polígonos.

Sí buscamos su definición lo primero que encontramos es lo siguiente:

En el renderizado de gráficos 3D, calcula el ratio de cambio de los valores de color RGB entre los puntos de cada triangulo (vertices) para que así los triangulos puedan ser rellenados con color de forma adecuada durante la fase de rasterización

Sí miramos el pipeline clásico de OpenGL y la definición de cada una de sus etapas:

gl_pipeline

 

Tenemos en la “Rasterización” la etapa encargada en realizar esta tarea:

.La Rasterización es la conversión de los datos geométricos y de pixel en fragmentos. Los fragmentos son cadenas rectangulares que contienen color, profundidad, longitud de la linea…. Cada fragmento corresponde a un pixel en el búfer de imagen.

En este esquema se ve mucho mejor:

 

Esta etapa es previa al texturizado pero es necesaria para convertir los polígonos en la escena en fragmentos, para que la parte final del pipeline gráfico pueda trabajar con ellos. Sí la parte final carece de mapeado de texturas entonces la información ira al Blitter/ROP que dibujara la escena en el búfer de imagen, si hay mapeado de texturas entonces pasará por la etapa de texturización para manipular los fragmentos para aplicar la textura y los efectos correspondientes.

El gran problema que tiene esta etapa es la enorme cantidad de cálculo necesaria para poder ser ejecutada,la cual era mucho más grande que la etapa de geometría, tal es así que su implementación por hardware a través de máquinas de estado que llevaban a cabo dicha tarea dio a luz en PC a la primera generación de aceleradoras 3D y cambiaron para siempre el mundo de los juegos de PC en dicho contexto:

 

La Voodoo Graphics fue la primera tarjeta comercial en incluir un Triangle Setup por hardware, el juego más avanzado que había aparecido en PC en 1996 era el Quake de id Software:

quake1

Quake era un juego que a nivel geométrico era capaz de mover 500 polígonos por fotograma (ver libro de Michael Abrash), el avance de las tarjetas 3D hizo que unos tres años más tarde Quake 3: Arena fuese capaz de soportar 20K poligonos/fotograma y estamos hablando de antes de la implementación del motor geométrico por hardware, esto es para que os hagáis una idea de lo que suposo descargar de la CPU esta parte del pipeline gráfico. Pensad  además que Quake era un juego que se diseño para funcionar en el Intel Pentium, un procesador que por arquitectura y potencia estaba muy por encima de lo que las consolas de 32 y 64 bits podían ofrecer. Implementar el Triangle Setup por software hubiese sido una carga enorme para los procesadores de Saturn y 3DO, la PlayStation de Sony implemento el Triangle Setup y la Geometría en un co-procesador llamado GTE, en N64 lo realizaba el RSP incluido dentro del RCP (aunque de estas consolas ya hablare cuando llegue el momento), ambas con una potencia mucho mayor que cualquier procesador de Saturn y no digamos ya de 3DO.

Anuncios