Aunque en el otro hilo que he creado dejo claro que Microsoft ha tomado otra filosofía para su arquitectura me parece acertado dejar aún más claro este tema con lo que a nivel gráfico representa este camino tomado por Microsoft.
Empezaremos con un poco de historia:
Hubo un tiempo en el que los gráficos 3D se hacía a golpe de CPU, las gráficas eran meros buffers de pixels que se presentaban en pantalla, con unidades DMA como mucho (acceso directo a memoria para pasar bloques de memoria a la VGA sin intervenir la CPU). Entonces aparecieron las aceleradoras 3D, sobre todo las conocidas Voodoo 3DFX, que cambiaron esto para siempre. Ya no era la CPU la encargada del 3D, se liberaba y se hacía todo a través de una GPU especialmente diseñada para ello con el aumento de rendimiento que supone.
Llegamos a la época de la multimedia, el vídeo y el audio cada vez es más exigente, y llegamos al punto que las CPU ahora incluyen instrucciones especiales de codificación y decodificación de vídeo. La última mejora en consolas es que haya coprocesadores encargados al 100% de ello, la CPU y la GPU se pueden dedicar a mejores cosas.
Entonces es cuando Microsoft ha decidido que no todo es 3D, que sus librerías Direct X no sólo hacen uso de la potencia 3D de una gráfica, y que llega un punto en el que los polígonos no lo son todo. Varios son los temas que importan más ahora que el número de polígonos:
- Efectos que se pueden aplicar
- Partículas volumétricas
- Texturas de mayor resolución
De nada sirve tener sopotocientos millones de polígonos en pantalla si luego el humo parece echo a base de bolitas o tiras de tela, y mucho menos si alguna textura parece sacada de un juego de Nintendo 64.
Microsoft ha cogido su biblioteca Direct X y ha pensado con detenimiento qué sería necesario para acelerar la mayoría de sus funciones por hardware de forma transparente, lo que de cara a los programadores es un cambio radical (no hace falta programar a bajo nivel para exprimir el hardware).
Ese es el motivo por el que se ha diseñado todo entorno a la eSRAM, centro principal del SOC de Xbox One. Se le dota de acceso en lectura y escritura, de forma simultánea, y con 32 MB hay espacio de sobra para todo lo que se pretende hacer (en Xbox 360 se quedaron cortos para algunas cosas).
Tampoco se ha hablado de otra teconología implementada en el SOC de Xbox One, que es la de superposición de planos de imagen. Hasta ahora las consolas de Microsoft tenían un único plano de pantalla, que ahora pasa a ser múltiple y con reescalado sobre la marcha sin intervención de la CPU o la GPU. Uno de esos planos se los reserva el sistema operativo, por ejemplo, para mostrar información (logros, chats, ventanas de videoconferencia, etc). ¿Qué significa de cara a los juegos? significa que es perfectamente posible poner una resolución 4K para el HUB del juego y 1080p para el juego en si, sin perder rendimiento. Al igual que no sufriremos más "saltitos" cuando se produzca un logro en un juego (un clásico de Xbox 360).
Microsoft no pretende ser puntero en millones de polígonos en pantalla, porque con lo que ofrece Xbox One ya hay un nivel lo sufientemente alto, lo que pretende es que el resto de aspectos gráficos sean exponencialmente mejorados. La potencia bruta es difícil de exprimir, pero si proporcionas un sistema que se aprovecha desde el primer momento sin que el programador haga nada la cosa cambia mucho.
¿Le saldrá bien la jugada? lo visto hasta ahora nos dice que posiblemente si, porque Ryse y Forza se ven increíbles y a 1080p, imposibles en una GPU como la de Xbox One teóricamente con esa resolución (y mucho menos a 60 FPS como en Forza). Los números de la GPU y el resultado final no cuadran. En Ryse estamos viendo cosas impensables en la generación actual, humo de verdad, partículas por doquier, texturas tremendas, 1080p... es evidente que Xbox One no es la panacea pero hay mucho potencial en su interior.