Con la transición al Shader Model 3 avanzando lentamente, los gamers más serios mira con curiosidad qué depara el futuro de la tecnología gráfica. La respuesta de David es que el futuro tiene buena pinta:

Próxima generación y Shader Model 3
David Vamos a asistir a la próxima generación de juegos basados en
shaders. En la primera generación hemos visto a gente usar un
shader para emular un hardware pipeline y descubrir que 'Ey!
Esto realmente es programable'. Tras esa etapa han intentando
usar crear algunas cosas con más luces usando a lo mejor 8 luces en
lugar de 10. Después empezaron a escribir shaders de materiales e
hicieron increíbles efectos de ropa y efectos metálicos que a hemos
podido ver.
La gente está empezando ahora a cambiar el modelo de iluminación y
están explorando todas las posibilidades que dicho modelo les
brinda. Estamos viendo cómo se añade iluminación High Dynamic
Range[www.cs.ubc.ca/~heidrich/Projects/HDRDisplay/]
a los motores como Far Cry. Sin embargo, el próximo paso es diseñar
juegos desde el principio para HDR; estos motores van a ser los que
generen la próxima revolución en el campo de la calidad
visual.
Claramente tener HDR en un motor que use SM2 es mejor
que no tenerlo pero no es tan bueno como una implementación HDR
llevada a cabo desde el principio.
Como ejemplo, el proceso de renderizado de Nalu necesita varios
barridos para cada frame. Cuando dibujas un gran número de objetos
en un gran número de formas en SM2 eliminas precisión en cada
barrido. En SM3, con programas shader más largos y con mayor
precisión el resultado es más rápido y el resultado más
preciso.
Por supuesto, el ejemplo más evidente es el Unreal Engine
3[www.unrealtechnology.com/]
que está siendo diseñado para Shader Model 3 y HDR desde el
principio. No obstante, con algunas desarrolladoras como Valve, que
están añadiendo HDR a sus motores existentes usando Shader Model 2,
cómo se siente David en relación con el ritmo de implementación de
SM3?
David: "Me parece evidente el decirlo pero la calidad de
iluminación HDR hecha a partir de Shader Model 2 es menor que en
SM3. El sistema visual humano tiene un rango dinámico muy amplio.
Cuando construyes una imagen a partir de una serie de componentes
como hacen los motores gráficos tienes errores de redondeo en cada
objeto. Usar precisión parcial en SM2 hace que este problema
resulte más evidente y menos atractivo para el ojo.
Para aquellos que tengáis gráficas de última generación os habréis
encontrado con un problema: no podéis usar Anti-Aliasing cuando
estáis usando iluminación HDR, como ocurre por ejemplo en Far Cry.
En estos casos tienes que elegir entre una opción o la otra. ¿Por
qué ocurre esto y cómo se va a resolver este problema?
David: "OK, el problema es este. Con un rendering pipeline
convencional renderizas directamente en el buffer final por tanto
la escena entera se renderiza directamente en el frame buffer y por
eso puedes aplicar AA a toda la escena."
Pero con HDR, renderizas componentes
de la escena individuales y luego los compones en un buffer final.
Es más parecido a cómo funcionan las películas, donde los objetos
que se ven en pantalla se renderizan de forma separada y luego se
montan juntos al final. Dado que son renderizados por separado es
difícil aplicar FSAA[www.benchmark.pl/artykuly/recenzje/GeForce4_4600/FSAA.jpg]
(AA a pantalla completa). Aplicar AA tradicional en este caso no
tiene sentido.
Entonces, si no puede hacerse con el hardware existente, ¿por qué
no añadir nueva funcionalidad hardware para las gráficas puedan
hacer AA con iluminación HDR?
David: Resultaría bastante caro intentar hacerlo en la capa de
hardware y realmente no tendría mucho sentido creemos que no
tiene sentido seguir aplicando AA a nivel de hardware. Lo que
ocurrirá es que en los juegos creados para HDR el AA se hará en el
propio motor del juego según especifique el desarrollador del
juego.
Quizás en algún momento ese proceso
pueda ser acelerado en hardware, pero no va a ocurrir en un futuro
inmediato.
Si el problema es el tamaño del
frame buffer, ¿no se solucionaría este problema con los 512Mb que
tienen las nuevas tarjetas?
David: "Con un frame buffer de mayor tamaño sí, podrías
acercarte. Pero realmente deberíamos hablar de 2Gb, no de
512Mb."
A nivel arquitectónico uno de los debates más candentes en gráficos
es si una pipeline de Shader Unificado sería deseable. Vamos a
ponernos en situación.
Las escenas gráficas están compuestas de vértices y píxeles. Estos
son coloreados por dos partes diferentes de un procesador
gráfico: el pipeline de pixeles y el pipeline de vértices. Hay
además dos aspectos más en este proceso: la capa de hardware y la
capa de software. Es posible tener una capa de software unificada
para programar y a la vez tener una capa de hardware distinta.
ATI cree firmemente que unificando estos dos pipelines llevaría a una mayor eficiencia.
Microsoft ha escrito una capa unificada de software en su
próxima versión de WGF. ¿Significa esto que Microsoft y ATI van por
el lado correcto y que NVIDIA no está siguiendo el mismo
camino?
David: Bueno, vamos a dejar algo claro. Microsoft hace APIs
(Interfaces de Aplicación Programables) no hardware. WGF es una
especificación para una especificación de API; es software, no
hardware.
Para ellos, implementar Shaders Unificados significa desarrollar un
modelo de programación unificado. Dado que no producen hardware no
están diciendo nada sobre el hardware.
Debatir sobre arquitecturas de shaders unificadas o separadas no es
la pregunta importante. La estrategia es sencillamente hacer que
los pipeline de vértices y píxeles vayan más rápido. La táctica
radica en cómo diseñas una arquitectura y cómo ejecutas la
estrategia. Estamos tratando simplemente de averiguar cuál es el
método más eficiente.
Es mucho más difícil diseñar un procesador unificado; tiene que hacer, por defecto, el doble de lo normal. Otra palabra para unificado es compartido y otra palabra para compartido es competencia. Es un desafío crear un procesador que haga balance de carga y predicción de rendimiento. Es sumamente importante, especialmente en arquitecturas de videoconsolas, que el rendimiento sea predecible. Con todo el balance que supondría una arquitectura unificada es difícil hacer que el rendimiento sea predecible. He oído incluso que como a algunos desarrolladores no les gusta nada el pipeline unificado controlarán las operaciones del pipeline de vértices en la CPU de triple núcleo de la Xbox 360[www.xbox.com/en-US/xbox360/factsheet.htm].
Ahora mismo creo que la 7800 rinde a un nivel bastante aceptable
para una arquitectura discreta.
Entonces, ¿qué nos puedes decir sobre el futuro?
"Haremos una arquitectura unificada de hardware cuando tenga
sentido. Cuando sea posible hacer que el hardware trabaje más
rápido unificado entonces sin duda que lo haremos. Será más fácil
construir en el futuro, pero por el momento todavía se le puede
sacar bastante juego a la arquitectura actual.
Conclusiones
Bueno, antes de nada, muchas gracias a David por tomarse el tiempo
para hablar con nosotros. Sus opiniones sobre RSX y la Xbox 360 han
sido muy reveladoras y nos ha parecido interesante saber que no
están desechando la posibilidad de hacer una arquitectura hardware
unificada en el futuro para la GeForce a pesar de las
especulaciones que rondaban por la red. Esperamos que no quede
demasiado para que el hardware pueda acelerar tanto AA como HDR y
también esperamos ansiosos para saber de qué es capaz la
PlayStation 3.
Entrevista publicada originalmente en Bit Tech y traducida por Juan Alonso de LaFlecha.net

El tiempo te ha quitado la razón David, igual deberias revisar tus convicciones.