#8 Las tres limitaciones actuales
Kayvon Fatahalain tiene una excelente presentación, PDF aquí, sobre los problemas de las actuales GPU a la hora de renderizar una escena a tiempo real formada por micro-polígonos.
A continuación os voy a resumir los tres talones de Aquiles de los procesadores gráficos actuales, tal y como los explica Fatahalian en su presentación.
Teselación.
Con cada nueva generación, la densidad geométrica por pixel ha ido aumentando, pero al mismo tiempo a medida que la complejidad geometrica de los modelados aumenta es más fácil realizar la teselación sin que esto repercuta en un coste adicional por parte de los grafistas. Uno de los puntos fuertes que tiene las últimas versiones de Direct3D y OpenGL es el soporte de teselación, pero es un tipo de teselación que podríamos llamar uniforme, esto significa que no hace la comprobación de la distancia en que cada vertice esta respecto a la cámara y realiza a nivel interno una teselación uniforme, aunque luego a efectos prácticos no se note. En otras palabras, la GPU acaba perdiendo el tiempo subdividiendo vertices que no se ven y al mismo tiempo pierde potencia para los objetos que están más cercanos a la visión del jugador.
Rasterización
Sacado del blog de Eric Demers en AMD.
Rasterización: Es importante que en todas las GPU con capacidad DirectX 11 la teselación no resulte en mucho polígonos cubriendo 1 pixel o menos, para permitir que los rasterizadores mantengan un razonable nivel de eficiencia.
La rasterización no es más que la etapa en la que la escena es pasada de un mundo 3D a un mundo 2D, como si estuviera proyectada sobre una superficie, en ella se generan los fragmentos, a los que se les darán atributos para convertirse en los píxeles finales en pantalla, ya sea a través de función fija o elementos programables. Esto sumado a lo comentado en la teselación es una bomba de relojería, no solamente se acaba aumentando la geometría de forma inútil, sino que además esa geometría de más hace que la fase de rasterizado disminuya enormemente su eficiencia.
Shading
La gota que colma el vaso, en este caso Demers llega a hacer mención en su blog de los trabajos de investigación de Fatahalian,
Usando micro-polígonos de tamaño 1 pixel se llega a realizar 8 veces más potencia en cuanto a Shading, esa una enorme cantidad de potencia desaprovechada por una mala optimización, al final la combinación de estos 3 factores acaba haciendo que se necesite una verdadera burrada para hacer funcionar una escena en ciertas condiciones y convierte a las GPU actuales ya no a largo plazo sino más bien a medio tirando a corto, en verdaderos problemas.
¡7 GPU de gama alta de Nvidia para renderizar una escena usando micropolígonos! La presentación de Brunhaver a la que hacen referencia habla de una GTX 480, eso es una potencia combinada de 9.5 TFLOPS y eso con la falta enorme de optimizaciones y teniendo la genial idea de usar MSAAx16, sabiendo que la efectividad del MSAA disminuye cuanto más pequeña es el area de los polígonos que forman la escena.
La realidad es que todo esto de lo que estamos hablando ya se esta sufriendo en parte en la actual generación, juegos como Uncharted 2 en PS3 mueven la friolera de 1.2 millones de polígonos por frame y requieren una potencia que un orden de magnitud mayor que el juego de la misma saga en PS Vita (270K por frame) y este problema se acaba agravando con el tiempo, creando una situación en la que el avance visual cada vez cuesta más desde el punto de vista tecnológico. Eso si, llegar a renderizar escenas con una complejidad geométrica de 15 millones de polígonos por frame a 60fps es algo que continuara estando fuera del alcance de los juegos, si con micro-polígonos de tamaño de un pixel se generan todos esos problemas, imaginad del tamaño estándar utilizado en el mundo del cine y la sobrecarga que esto conllevaría. Pero una imagen en Full HD, con micro-polígonos de tamaño 1 pixel y en 3D estereo, resultarían 1/4 aproximadamente de la potencia necesaria y es viable, es viable con lo que tenemos en el mercado hoy en día.
#9 Las opciones que tiene Microsoft
Son las siguientes:
- El uso de un SoC para todo el sistema, es la opción económicamente más viable y la más atractiva pero no resultaría en el salto generacional necesario.
- CPU+CPU, lo que significaría una rotura completa del paradigma, muchos desarrolladores la acabarían rechazando aunque la potencia de calculo obtenida fuera la misma.
- CPU+GPU, la solución clásica y efectiva de toda la vida.
La CPU es un Core i5 2320 en esta configuración y la RAM disponible para la gráfica es de 2GB, un PowerPC A2 de 16 núcleos fabricado bajo un proceso de 32nm en sustitución del chip de Intel sería más adecuado para las tareas relacionadas con los videojuegos, en especial la detección de colisiones. En cuanto a la memoria la apuesta estaría claramente enfocada de cara al uso de TSV, en realidad la arquitectura Graphics Core Next que se usa en las HD 77xx en adelante esta preparada para el uso de este tipo de memorias y eso se ha sabido recientemente gracias al soporte que integrará Kaveri, la tercera generación de las APU que integrará una 7750 en su interior.
Este tipo de configuración no es algo que resulte inviable a día de hoy, por un lado tendríamos potencia para realizar el cambio de paradigma, eso si, a escala mucho menor y por el otro poder continuar con la rasterización clásica. En todo caso el cambio real no se dará hasta que no se produzca el cambio completo de paradigma, el cual no sabemos si se producirá o simplemente los desarrolladores miraran a otro lado, en todo caso lo ideal es que los sistemas estén preparados de cara al futuro.





























