« Arquitectura de la GameCube (index)

Arquitectura de la GameCube

Chapter 4: Gráficos


Tabla de contenidos

  1. Arquitectura y diseño
    1. Base de datos
    2. Geometría
    3. Textura
    4. Renderizado
  2. Comparación interactiva
    1. La mejora
    2. La actualización
  3. Creatividad
  4. Sistema de salida de vídeo
  5. Conexiones

Esta es una de las secciones más críticas de esta consola, básicamente hace que la GameCube sea una GameCube.

La historia de la GPU de esta consola tiene algunas conexiones interesantes: Wei Yen, el director del SoC del N64 (el RCP), luego fundó ArtX y consiguió un contrato con Nintendo para desarrollar su chip de próxima generación: Flipper.

Image
Super Mario Sunshine (2002).

Hubo muchos avances realizados desde la iteración anterior, por ejemplo, el subsistema se simplificó severamente a un núcleo único (pero poderoso).

Durante el proceso de desarrollo, ArtX fue adquirido por ATI, que a su vez fue vendido a AMD seis años después. Por lo tanto, es por eso que ves una pegatina de ATI estampada en la parte frontal de la caja.

Arquitectura y diseño

Flipper es un bloque complejo que maneja múltiples servicios , así que enfoquémonos en el componente gráfico por ahora (ya que es el responsable de dar vida a nuestra geometría). Llamaremos a esta área la GPU o Motor Gráfico y, si has estado leyendo el artículo de la N64, solo para que sepas que el núcleo ahora es funcional desde el primer momento, por lo que los programadores no tendrán que preocuparse por inyectar código para hacerlo funcionar. Sin embargo, habrá algunas partes interesantes que son personalizables.

Image
Diseño de la GPU, Flipper.

Como siempre, para dibujar un fotograma en la pantalla, nuestros datos pasarán por el canal de la GPU. Los datos pasan por muchos componentes diferentes que podemos agrupar en cuatro etapas:

Base de datos

Image
Diagramas de la fase de base de datos.

La CPU y la GPU se comunican entre sí usando un búfer FIFO de longitud fija en la RAM principal, esta es una porción reservada donde la CPU escribirá comandos de dibujo que la GPU leerá (y eventualmente mostrará), esta funcionalidad es nativamente soportada por la CPU y la GPU.

Además, la CPU y la GPU no tienen que estar apuntando al mismo FIFO al mismo tiempo, por lo que la CPU puede llenar uno separado mientras la GPU está leyendo el primero . Esto evita el tiempo de inactividad.

Emitir comandos individuales para construir nuestra geometría puede resultar muy tedioso con escenas complejas, por lo que las bibliotecas oficiales incluyen herramientas que generan las Listas de Visualización necesarias (conjunto precompilado de comandos FIFO) a partir de los activos del juego; este bloque solo necesita ser copiado a la RAM para permitir que la GPU los muestre de manera efectiva.

La GPU contiene un procesador de comandos que se encarga de buscar comandos en el FIFO.

Geometría

Image
Diagrama de la fase de vértice usando modo indirecto.

Aquí los primitivos se transforman para darles forma según el escenario deseado y se preparan para el rasterizado. El motor utiliza una unidad de vértices o 'VU' dedicada para lograr esto.

Hay dos modos de vértice disponibles para manejar los primitivos emitidos a través del FIFO:

Una vez cargados, los primitivos pueden ser transformados, recortados, iluminados (cada vértice tendrá un valor RGB que también puede ser interpolado para propósitos de sombreado Gouraud) y finalmente, proyectados.

Textura

Image
Diagrama de la fase de textura usando una configuración predeterminada.

Ahora es el momento de aplicar texturas y efectos a nuestros modelos, y para eso la GPU incluye múltiples unidades que procesarán nuestros píxeles. Ahora, este es un procedimiento muy sofisticado (aunque bastante complejo), por lo que si encuentras difícil seguirlo, solo piensa en él como una gran línea de ensamblaje que procesa píxeles. Habiendo dicho esto, hay tres grupos de unidades disponibles:

Todo esto es asistido por 1 MB de memoria de Textura (del tipo 1T-SRAM) que puede dividirse en caché y memoria Scratchpad (RAM rápida). Descompresión de hardware en tiempo real para texturas SRTC (Compresión de Texturas S3) también está disponible para ajustar más texturas en ese solo megabyte. de memoria disponible.

Renderizado

Image
Diagrama de la fase de renderizado.

La etapa final del proceso de renderizado incluye aplicar algunos toques opcionales pero útiles a nuestra escena:

El frame resultante finalmente se escribe en el búfer de tramas en la 1T-SRAM integrada, pero esto todavía está bloqueado dentro de Flipper (la área se llama 'Embedded Frame Buffer' o 'EFB', aunque también incluye el z-buffer). Entonces, para mostrarlo en nuestra TV, tenemos que copiarlo al bastidor de tramas externo o 'XFB' , que puede ser recogido por la Interfaz de vídeo o 'VI'. Además, el proceso de copia puede aplicar efectos como Antialiasing (suaviza los bordes), Desentremecedor (suaviza los cambios repentinos en brillo), conversión de RGB a YUV (un formato similar que ocupa menos espacio en la memoria) y escalado Y (escala verticalmente el frame).

Vale la pena mencionar que el área XFB también puede ser manipulada por la CPU, esto le permite combinar mapas de bits previamente renderizados con nuestro frame recién renderizado; o cuando ciertos juegos necesitan renderizar frames muy ricos en color que no caben en el EFB, entonces se renderizan en partes y se combinan por la CPU después (siempre sincronizados con el VI).

Comparación interactiva

Es hora de poner todo esto en perspectiva, revisa cómo los programadores evolucionaron los diseños de sus juegos anteriores para aprovechar las nuevas capacidades gráficas de esta consola. ¡No olvides que los ejemplos son interactivos!

La mejora

El famoso modelo de Mario que tuvo que ser reducido debido al conteo de polígonos en la generación anterior fue completamente rediseñado para esta, echa un vistazo más de cerca a cómo el modelo evolucionó de caras simples a mangas arrugadas.

3D model 3D model 3D model
Modelo interactivo disponible en la edición moderna
Super Smash Bros (1999) para la N64.
320 triángulos.

3D model 3D model 3D model
Modelo interactivo disponible en la edición moderna
Super Smash Bros. Melee (2001) para la GC.
4.718 triángulos.

Es realmente impresionante cuánto detalle se ha añadido en tan sólo dos años, ¿no?

La actualización

En este caso, Sonic Team ya diseñó un modelo de Sonic para su consola única, pero después de haber porteado su juego a la GameCube, fueron capaces de añadir más polígonos a su modelo, logrando mejores detalles.

3D model 3D model 3D model
Modelo interactivo disponible en la edición moderna
Sonic Adventure (1999) para la DC.
1.001 triángulos.

3D model 3D model 3D model
Modelo interactivo disponible en la edición moderna
Sonic DX (2003) para la GC.
1.993 triángulos.

Creatividad

Como se puede ver en el funcionamiento interno de este canal, la tecnología gráfica ha evolucionado hasta el punto que los programadores ahora pueden tomar el control de ciertas funciones del proceso de renderizado.

Image
The Legend of Zelda: The Wind Waker (2003).

Al mismo tiempo, las tarjetas gráficas de PC estaban empezando a descartar los canales de funciones fijas en favor de núcleos de sombreado (unidades que ejecutan pequeños programas que definen cómo los píxeles son operados). Flipper todavía contiene una GPU de función fija, sin embargo, al incluir componentes como la unidad TEV, uno podría argumentar que Nintendo proporcionó su propia solución de sombreado.

Supongo que uno de los mejores ejemplos de juegos que utilizaron esta nueva capacidad es The Legend of Zelda: Wind Waker que implementa una técnica única de color/iluminación conocida como Cel shading para hacer que sus texturas se vean como una caricatura.

Sistema de salida de vídeo

La señal de vídeo produce una resolución de hasta 640x480 píxeles (o 768×576 px en PAL) con hasta 16,7 millones de colores (profundidad de 24 bits). Además, el sistema podría transmitir su señal en modo progresivo (que tiene una imagen más clara, pero no todos los televisores lo soportaban durante esa época).

El XFB puede tener múltiples dimensiones, así que, por razones de compatibilidad, la interfaz de vídeo hará todo lo posible para mostrar el frame, remuestreando el XFB para caber en la pantalla de televisión basada en la región.

Conexiones

La consola no incluía una, sino dos conectores de salida de vídeo:

Image
Conexiones A/V en la parte posterior.


Previous: 3. CPU

Next: 5. Audio


Rodrigo Copetti © 2026 RSS Feed

Ir a la edición moderna

Inicio · Escritos · Soporte · Acerca del autor · Acerca del sitio web