Source: https://josepjroca.wordpress.com/2015/11/14/el-futuro-cambio-de-paradigma-en-cuanto-a-los-graficos/
Timestamp: 2017-10-18 07:15:08+00:00

Document:
El futuro cambio de paradigma en cuanto a los gráficos | Disruptive Sketchbook
Urian 12:34 PM el 14 November, 2015
El futuro cambio de paradigma en cuanto a los gráficos
¿Que sucederá cuando los costes de desarrollo impidan a los estudios mejorar los gráficos? ¿Adiós a la industria? ¿Nintendo was right?
Los costes de producción son en realidad los costes relacionados con el capital humano en lo que a videojuegos se refiere, no estamos hablando de una actividad industrial donde se haya de pagar equipamientos la mar de caros y exista una estructura física, todo lo que se crea proviene del talento y la mente de los desarrolladores.
Esto es importante porque no es lo mismo que hacer un coche que la estructura del coche empieza desde el minero que pica en la mina hasta el pintado final del coche, es mucho más sencilla ya que todo se resuene en una sola etapa de producción y pese a haber diversos departamentos estos trabajan en paralelo los unos con lo otros. ¿Cual es el elemento que hace subir los costes? Ni más ni menos que el hardware y sus especificaciones técnicas, cuando más potente es un hardware en el aspecto gráfico se necesita un equipo de desarrollo cada vez más grande que al mismo tiempo aumenta los canales de comunicación y acaba por aumentar con ello el tiempo de desarrollo de los juegos y con ello el coste ya que:
Coste de Producción= Salario combinado de todos los trabajadores*tiempo.
¿En que se traduce esto? En que el tamaño de los equipos si crece mucho entonces no puede recibir las ordenes pertinentes porque la comunicación se complica demasiado, es más, dados estos problemas de comunicación el rendimiento de la masa de trabajadores disminuye y por tanto se acaba cumpliendo la ley de rendimientos decrecientes. ¿Y que ocurre? Que entonces necesitamos una cantidad de personal cada vez más grande para conseguir un mismo resultado y se llega un punto en que los costes de producción aumentan cada vez más.
¿Y que tenemos en el otro lado? Pues que el precio de los juegos ha ido disminuyendo con el tiempo… ¿como si siempre han rondado un precio similar? Esto es porque el valor de una unidad monetaria va variando con el tiempo si tenemos en cuenta la inflación y dado que los videojuegos daban unos márgenes enormes lo que se ha hecho es mantener los precios en un rango pero se han ido disminuyendo los beneficios. Es decir, los videojuegos han estado años en una posición sin inflación, pensad que un juego cuando se vende no solo carga con los costes de producción sino también los de promoción del mismo… pensad lo mucho que han aumentado y lo mucho que ha disminuido el diferencial coste-beneficios y entenderéis la pura realidad… la mayoría de grandes editores están así…
… montados en enormes cantidades de dinero que pueden convertir fácilmente en nuevos productos y que ademas les permite ocupar los primeros puestos de la cuota mental gracias a la propaganda, algo contra lo que los pequeños estudios no pueden competir porque no tienen ni los recursos económicos para la producción ni tampoco para la promoción. Obviamente esta es la explicación de porque pueden seguir este ritmo pero todos sabemos que su tasa de ganancia se va disminuyendo a medida que los valores de producción suben… ¿Van a continuar subiendo o se van a mantener estables en unos costes determinados?
Existen otros elementos aparte del trabajo humano que son lo que hacen que los gráficos de los juegos mejoren, la implantación de nuevas tecnologías y algoritmos gráficos que permiten una mejor calidad de imagen y cuyo coste humano es casi nulo. Hace unos pocos años vimos una presentación de Tim Sweeney donde hablo de la iluminación de más de dos rebotes… ¿En que consiste la idea? Digamos que el aspecto de las cosas depende de la iluminación y de como esta se comporte con cada material que estamos representando y hay materiales que en los videojuegos no se representan bien por el hecho que incluso hoy en día seguimos usando luz de dos rebotes.
Los primeros juegos en 3D por limitaciones técnicas utilizaban luz de un solo rebote, pensad en la cámara también como una linterna que envía el haz de luz directamente contra los objetos y luego vuelve, un mecanismo tan simple como este fue el utilizado por Doom:
¿Que vino después? La luz de dos rebotes con una sola fuente de luz, donde la luz puede rebotar con un objeto, luego con otro y más tarde volver de nuevo a la cámara. En la iluminación de dos rebotes la fuente de luz principal no tiene porque ser la cámara sino que puede estar colocada en cualquier parte del escenario solo que después de hacer el segundo rebote entonces este vuelve hacía la cámara. Una buena diferencia entre el uso de iluminación de un rebote y de dos rebotes se puede ver aquí:
El problema es que el sistema de renderizado utilizado por los videojuegos, la rasterización, tiene que actualizar la información de color de todos los pixeles por cada fuente de luz en la escena. ¿A que viene todo esto? Pues que con cada fuente de luz la tasa de relleno se recorta por completo. ¿Hemos mejorado desde entonces en el aspecto de la iluminación? La respuesta es un rotundo NO porque seguimos en los dos rebotes, es decir: la iluminación sigue siendo algo estancado en el tiempo. Se requiere una cantidad de computación enorme ya que al añadir un tercer rebote entonces el número de operaciones por pixel aumenta no solo aumenta de forma directa sino también de forma indirecta siendo la iluminación indirecta la que en ciertas situaciones es generada tras el primer rebote al tocar ciertas superficies/materiales concretos.
¿Y cual es el problema? Con dos rebotes ciertos materiales o mejor dicho el comportamiento de cierto materiales en un entorno no se pueden simular de forma fidedigna. Es completamente igual que tu tengas un equipo de talentosos grafistas y desarrolladores que si la escena se renderiza solo con dos rebotes entonces te verás visualmente limitado. ¿y de donde saco todo esto? De una presentación que realizo Tim Sweeney en el DICE de 2012 donde explico muy bien explicado el tema de la evolución gráfica, Sweeney es el arquitecto del Unreal Engine por lo que tiene algo que decir aquí:
La iluminación de primer orden utiliza iluminación de un rebote y con ello se encuentra en el primer orden de aproximación, la de Unreal de dos rebotes y se encuentra en el segundo orden de aproximación y la demo de Samaritan utiliza tres rebotes y se encuentra en el tercer orden de aproximación. ¿Y que es una aproximación? es una representación inexacta que, sin embargo, es suficientemente fiel como para ser útil. Si tenemos en cuenta la información que se tiene que calcular en cada pixel a medida que aumentamos el número de rebotes aumentamos la potencia necesaria por el hardware para la representación, es decir… la cantidad de operaciones por pixel aumenta considerablemente.
Por lo que tenemos tres caminos de cara al futuro en estos momentos en cuanto a la tecnología gráfica en los juegos:
El clásico aumento de resolución con la aparición de los televisores 4K y su estandarización con el tiempo, 4K son 3840 x 2160, es decir… una resolución unas cuatro veces superior a los 1080P y un salto aún más grande que los 480P a 720P y aún más que los 720P a los 1080P.
La aparición de la Realidad Virtual, no solo con el aumento de la resolución sino también con el hecho de tener una tasa de refresco muy grande.
Quedarnos en los 1080P para aumentar la calidad de imagen al aumentar la cantidad de operaciones por pixel.
¿A donde quiero llegar con esto? Existe margen para la mejora gráfica fuera de los valores de producción y aquí voy a aprovechar para responder a una de las preguntas que tanto me habéis hecho de paso…
No es que sean poco potentes sino que un servidor esperaba poder ver juegos que visualmente resultasen un salto más espectacular al utilizar iluminación de tres rebotes, desgraciadamente no ha sido así y sigue existiendo un margen para la mejora visual bastante importante que veremos cuando se estanquen los costes de producción y la potencia del hardware haya subido lo suficiente como para realizar una aproximación visual más fidedigna. Obviamente dado que los valores de producción no podrán seguir aumentando más allá de un límite económico será el hecho de utilizar algoritmos más precisos y con una mayor aproximación lo que nos dará el salto visual… ¿pero como será ese salto visual? Sería muy decepcionante una huida de cara a la resolución y la tasa de refresco (esto por la Realidad Virtual) en vez de mejorar la calidad visual de la escena, precisamente no es que yo sea una putilla gráfica pero en general el impacto de la nueva generación respecto a anteriores ha sido para mi…
Se que hay gente que me dirá que estoy ciego, pero por favor… comparad el salto de PSone a PS2, el de PS2 a PS3 y luego el de PS3 a PS4… El último ha sido bastante discreto y realmente no ha traido nada revolucionario a nivel gráfico fuera de una mayor resolución y un aumento “leve” de las operaciones por pixel. La gente olvida que esto…
… pertenece a una demostración no-interactiva pero generada en tiempo real que requiere unos 2.5 TFLOPs de potencia gráfica… algo que ni tan siquiera PS4 puede llegar a alcanzar en lo que a potencia se refiere y eso que hablamos de un entorno donde pese a que todo se renderiza a tiempo real esta todo “guionizado” y esto reduce enormemente las necesidades de computación.
No en vano los señores de Epic para el desarrollo del Unreal Engine 4 decidieron tirar de una técnica llamada SVOGI (Sparse Voxel Octree Global Ilumination) e hicieron la primera demostración del motor con la siguiente demostración:
¿El problema? Se ejecutaba en una GeForce 680 con unos 3 TFLOPS de potencia, mucho más de lo que la consola más potente PS4 que tiene una potencia de 1.8 TFLOPS. El propio Sweeney dejaba ir lo siguiente en su twitter sobre las necesidades del UE4 en cuanto a iluminación.
Dadas las necesidades para el SVOGI en cuanto a computación para la ejecución de escenas con iluminación global (iluminación de 3 rebotes) la calidad visual del UE4 en consolas ha tenido que recortarse y se ha tenido que optar por una aproximación menos precisa. No en vano un Octree es un árbol de unas 8 ramas que en este caso se utilizaba para almacenar la trayectoria de la iluminación de la escena, la cual es almacenada en forma de pixeles volumétricos (voxels) que en una representación más o menos así:
Un Octree para almacenarse requiere un espacio de memoria grande que es [(8^n)* información por pixel], a medida que n es más grande tenemos más precisión en la iluminación de la escena más grande pero el aumento en lo que a la computación se refiere aumenta con cada nuevo nivel de forma espectacular. El caso es que la mayoría de las demostraciones con el SVOGI se han hecho con una n=3.
Esto son un montón de accesos a memoria continuados y el tamaño de un Octree a esos niveles no es pequeño ya que para si solo se come ni más ni menos que…
… hasta 1GB de memoria, pero lo que realmente es complejo es el tiempo de construcción del Octree en lo que a la escena se refiere (escena, no fotograma) que en ese caso es de 70ms y la actualización en cada fotograma de 5ms en una Kepler/GeForce 680/GK 104… imaginaos el impacto en una GPU menos potente como son las consolas. Es por ello que en sistemas como en PS4 se han buscado otras alternativas sin tanta complejidad.
El hecho de utilizar las texturas parcialmente residentes es porque estas se sitúan en las caches de la GPU y reducen con ello el tiempo de acceso (latencia).
Dado que la arquitectura de la GPU de Xbox One y PS4 es la misma esto es aplicable en ambas pero la realidad es que Xbox One al ser menos potente tiene un mayor handicap en esto. ¿Cual es el problema? Las GPUs están pensadas para funcionar con su memoria a mucho ancho de banda pero a mucha latencia, es decir, para recorrer una estructura de datos compleja son bastante…
¿Como es que es importante un Octree? Por el hecho que se encuentra entre G-Buffer del renderizado por diferido y el K-Tree del trazado de rayos. Es decir, nos permite almacenar los valores de color de la iluminación en cada parte de la escena. ¿A que ha venido hablar del G-Buffer? En el renderizado por diferido durante el primer paso las posiciones y normales de los elementos de la escena son guardados en un búfer de imagen (2D) que se almacena como textura y es utilizado posteriormente para componer la escena de forma más precisa, el uso de un Octree es lo que permite almacenar en un modelo más preciso dicha información y con ello dar una aproximación más realista y permite iluminación de más de dos rebotes a tiempo real… ¿El motivo? El octree almacena el recorrido de la luz en el espacio tridimensional y permite los tres rebotes.
Mirad este video por favor donde se ve la aplicación del VCTGI que aparece descrito en la diapositiva de Sony:
En la descripción del video podemos leer:
¡Dos rebotes! La demostración va muy suave pero la representación visual de los materiales no es mejor que la que vemos en los videojuegos, obviamente una iluminación de tres rebotes ralentizaría enormemente la velocidad de la escena en una HD 7870 (la cual tiene una potencia muy cercana a la GPU de PS4). ¿En que se traduce esto? Fácil, en que existe un margen de mejora visual que no depende del trabajo humano pero que no veremos hasta que la potencia del hardware sea lo suficientemente grande y permita el salto visual que no se ha dado en esta generación. Un salto visual que en este caso no depende de los valores de producción sino de la tecnología disponible del momento y que no se puede ejecutar por la falta de potencia de los sistemas actuales y por tanto se necesita un cambio generacional.
Es decir, creo que el tamaño de los estudios se estancará y llegara un punto en que no crecerá más porque no será rentable ampliarlos pero al mismo tiempo creo que veremos una mejora en la representación visual de cara a la siguiente generación tan pronto como la iluminación de tres rebotes se estandarice pero para ello se requiere un hardware mucho más potente que el que tenemos actualmente.
maz1nger (@maz1nger) 2:00 PM el 14 noviembre, 2015
Definitivamente Xbox One y PS4 se han quedado cortas. Para ver un verdadero salto generacional como el que hubo entre PSOne a PS2 y luego a PS3 como mínimo tendrían que haber llevado algo equivalente a una Radeon HD 7950 (2.87 TFLOPS) o una HD 7970 (3.79 TFLOPS)… y un procesador que estuviese a la altura de esa potencia gráfica. Ahora estaríamos viendo como ambas consolas podrían juegos a 1080p reales (y no los 900p, 792p o 1080p dinámicos), buenas texturas y a unos framerates estable.
Juan de Julian (@oviguan2) 4:46 PM el 14 noviembre, 2015
También pienso que PS4 y Xbox One no ha supuesto un salto suficiente como para sacar unas consolas basando su razón de ser en la potencia gráfica, también hay que decir que desde hace unos años en pc está medio estancado, o al menos esa es la sensación que tengo, cuando iba al instituto, la potencia de los ordenadores evolucionaban de forma rapidísima.
Soy de los que piensa que llegados a los 720p o 1080p, los recursos que ofrecen los avances de la potencia de hardware no se deberían utilizar para mejorar la resolución (entiendo que al final es todo marketing, y los números venden) sino para mejorar otros aspectos como lo que dices de los rebotes de iluminación, físicas, imágenes por segundo etc
Desde mi ignorancia en estos asuntos he llegado a la conclusión de que la resolución o definición de una imagen en un juego (o una película) no depende de los mismos aspectos que en una imagen estática, me explico, en una imagen estática, cuanto mayor resolución mas detalle puedes mostrar, solo hay tres dimensiones, pero cuando hay movimiento, realmente la cantidad de detalle que puedes mostrar depende de la resolución y de la cantidad de imágenes por unidad de tiempo con dicha resolución. Es de decir, si un fotograma no te ha mostrado un detalle muy pequeño por las limitaciones de la resolución, o este detalle no se muestra del todo bien, en el siguiente fotograma es posible que se muestre aunque sea en detrimento de otro detalle, o que se muestre otra parte del detalle, cuantas mas imágenes pasen por unidad de tiempo, mejor va a ser la sensación al ver ese detalle, una especie de mejora de ‘pixels por unidad de tiempo’ en lugar de ‘pixels por imagen’, como si fuera la cuarta dimensión de la resolución.
Por todo esto pienso que seguir avanzando en resolución (2k, 4k….) no tiene sentido si no se hace de forma paralela a otros aspectos como las imágenes por segundo, efectos de luz etc creo que tiene que haber un equilibrio al avanzar en todo esto ¿puede ser cuestión de marketing y la necesidad de hablar de números como 1080p o 4k a dejar de lado otros aspectos? ¿que opinas de todo esto Urian?
MinosnoGriphon Productions 9:38 PM el 14 noviembre, 2015
Comparto tu opinión sobre el salto gráfico de PS3 y Xbox 360 a PS4 y Xbox One como poco impresionantes, no veo gran diferencia, incluso me atrevería a decir que para dar la sensación de avance en este aspecto, han optado por degradar los gráficos de un juego para PS3 o Xbox 360 para que en su versión PS4/One parezca mejor, cuando en ambas generaciones podría lograrse lo mismo. De hecho la llegada de la Next gen me pareció muy adelantada dado a que los predecesores aún tenían mucho que ofrecer. ¿Tiene el lanzamiento de Wii U alguna relación con el adelanto a esta generación?
changuin777 1:17 AM el 15 noviembre, 2015
changuin777 1:18 AM el 15 noviembre, 2015
Corrijo: posibles escenarios..
IntelCeleronMasterRace 3:05 AM el 15 noviembre, 2015
WOW , te la rifaste explicando cada cosa….Volviendo al tema, si, hay que esperar a que mejora la tecnologia hasta el punto que puedan meter una gtx 980 en una consola de forma industrial.
xarman 2:25 PM el 15 noviembre, 2015
En esta gen ya se ve como evitan subir los costes
Por primera vez les interesan los 60 fps y hacen campaña sobre ellos para que el publico los demande
Lo mismo con full hd cuando en ls gen anterior era cadi mas normal sub 720
Escenarios grandes y semi vacios rellenados proceduralmente con speedtree y una herramienta de moldeado de montañas como cualquier editor de terreno (ej. Ue4, unity, udk (ue3))
Distancia de vision y lod saturados hasta donde permita su modedto hardware (comparar fallout 4 pc vs consola hace llorar al niño jesus)
Iluminacion y postprocesado que depende del motor no del trabajo de los desarrolladores sobre todo si ya está creado de un juego anterior o el engine está licenciado (a epic, unity, la empresa madre como ubisoft o ea…)
Se ahorran hasta el reescalado a la baja de las texturas que se hacia con ps360, se usanclas mismas que en pc
Eso si, ambas sufren con el anisotropico que en pc sale gratis desde hace como 7 años XD
xarman 2:35 PM el 15 noviembre, 2015
De ahi la moda sandbox
Georg Cercadillo 11:05 PM el 15 noviembre, 2015
← Lo siento pero no puedo cumplir con la petición
Sony y Microsoft no harán nada contra NX →

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución