Archivo

Categories
Portada (146)

Archive 2018
Julio (1)
Mayo (1)

Archive 2017
Julio (3)
Junio (9)
Abril (1)
Enero (8)

Archive 2016
Junio (8)
Mayo (4)
Abril (3)
Marzo (3)
Enero (7)

Archive 2015
Agosto (3)
Julio (2)
Junio (1)
Mayo (1)
Abril (2)
Marzo (4)
Enero (9)

Archive 2014
Agosto (12)
Julio (53)
Junio (11)

Portada

Notapor nikolas » 07 Jun 2016, 11:25

Imagen
Capas de un modelo 3D


En el siguiente articulo intentare aclarar algunos conceptos basicos sobre como funciona un videojuego, desde los tiempos de las maquinas de 8 bits, hasta tecnicas usadas en juegos actuales, como la reconstruccion o la interpolacion; Para ello introducirémos primero algunos conceptos sencillos como pixel y Frame y más adelante desarollare algunas técnicas de renderizado que se han utilizando desde esos primeros videojuegos hasta la etapa actual.
Pero comencemos la casa por los cimientos; que es un pixel? Todas las pantallas digitales están compuestas de un determinado número de “puntos” que pueden representar o bien una escala de grises (todos recordamos la Gameboy con su pantalla monocromática) o bien un determinado color dentro de un escala de colores.
Los juegos en la etapa de 8 y 16 bits utilizaban un puñado de estos pixeles agrupados, que mediante su escala de colores, que permitían dibujar formas más o menos sencillas, a esa unión de todos los pixeles que forman una determinada imagen en la pantalla de la televisión, se le denomina frame, así que los todos los videojuegos tienen frames, que a su vez estaban compuestos por pixeles, y a mayor cantidad de pixeles, mayor calidad visual tendrá el Frame
En los videojuegos primigenios, los pixeles estaban compuestos exclusivamente por la información del color que tenía que haber en cada uno de ellos, y el frame se calculaba en una unica pasada, pixel por pixel.
Imagen


Era muy fácil contar los pixeles en la época de los 8 bits


Más adelante, con la mejora de la capacidades de cálculo de las maquinas dedicadas a videojuegos, y con la llegada de los videojuegos en 3D, se hace patente, que usar solo pixeles con color, no era suficiente para poder ofrecer una imagen que cada vez más, se intentaba fuera más parecida la vida real; Entramos en la era en que el Frame está construido por varias capas, que una vez superpuestas, forman la imagen final que vemos en la pantalla.
¿Pero qué capas son necesarias para que una imagen parezca lo más real posible? Actualmente podemos hablar de 4 capas principales:
- Capa de color: es la capa que indica que color tiene que mostrar cada pixel en la pantalla, y como se comentó antes, la única capa que componía el frame en los primeros juegos, es la capa "principal" de cualquier juego
- Capa de iluminación: se encarga de decir cuanta luz tiene que recibir cada pixel, en función de la posición con la fuente de luz.
- Capa de reflejos o reflexiones: indica que superficies hacen rebotar la luz, usualmente agua, elementos metálicos suelen ser la que usan mas este tipo de efectos.
- Capa de oclusiones: indica que zonas de la imagen están en zonas de sombra.
La superposición de estas 4 capas básicas, compondrán la imagen final que veremos en la pantalla.
Imagen
Ahora que ya sabemos que la imagen está compuesta por varias capas, introduciremos un concepto más, es la resolución; que sencillamente nos indica cuantos pixeles hay en cada frame, pero todas las capas se calculan con la misma resolución? Es decir, ¿hace falta calcular el mismo número de pixeles para todas las capas? La respuesta es no; Las capas de iluminación, sombreado y oclusiones, se calculan a resoluciones mucho más bajas que la capa de color, ya que estas capas no requieren de tanta resolucion, y además son más difíciles de calcular (la maquina necesita mucho más tiempo) que para la capa que muestra el color.
¿Entonces, en un juego actual que corre a 1080p (que significa 1920*1080 pixeles totales) lo que estoy viendo en pantalla a que resolución se está calculando? pongamos algun juego actual como ejemplo y analicemos como está funcionando:
En Tomb Raider Reboot, que corre a 1080P en ambas consolas, el frame estaría compuesto de la siguiente manera.
- Capa de color a 1080p
- Capa de reflexiones a 540p
- Capa de iluminación a 540p
- Capa de oclusiones a 540p
Dicho de otra manera, lo que se habitualmente se entiende como 1080P nativos, o resolución “full HD” es en realidad la resolución de la capa de color, ya que el 100% de la veces el resto de capas son calculadas a resoluciones inferiores.
Imagen

proceso para componer un frame en tomb raider


Llegados a este punto cabe una pregunta; ¿es la resolución sinónimo de calidad visual?, y la respuesta es , pero con matices; La calidad visual del conjunto será mayor cuando mayor sea la resolución de todas las capas que componen el frame, y no solo de la capa de color (la que habitualmente se usa para medir la resolución), pongamos algunos ejemplos:

- Un frame formado por un capa de color a 1080P y cuyo resto de capas están a baja resolución, presentara un apartado visual poco vistoso e irreal, lo que se suele denominar vulgarmente como "plasticoso"
- Un frame formada por una capa de color a menor resolución, pero cuyo resto de capas están a una mayor, puede presentar un apartado visual más atractivo.
Imagen
Forzar que la capa de color corra a 1080, puede conllevar recortar el resto de efectos, como las sombras.


En resumen, se consigue la mejor calidad visual cuando se balancean los recursos de la maquina (consola o PC) para que todas estas capas tengan la mayor resolucion posible.

Llegados a este punto; cabe hablar del método utilizado por Remedy en Quantum Break, que en vez de utilizar una capa de color a 1080p y el resto de capas a resoluciones inferiores, Remedy opto por 4 frames a 720p que mediante un proceso especifico (llamado Compute Shader) se compone la imagen final en 1080p, así que nos encontramos la siguiente situación:
- Capa de color a 720p
- Capa de reflexiones a 720p
- Capa de iluminación a 720p
- Capa de oclusiones a 720p
De esta manera nos encontramos que las capas de iluminación, reflexiones y oclusiones tienen una resolución bastante mayor que en el caso de un frame renderizado de manera estándar, teniendo un frame reconstruido pixel a pixel a 1080P y que además tiene bastante más precisión en todas las capas de iluminación.

Cabe destacar tambien que calcular las capas de iluminación es bastante más costoso que calcular la capa de color, así que Remedy perfectamente podría haber ajustado esta capa de color a 1080p habiendo bajado la resolución del resto de capas, recortando en necesidad de cálculo, a costa de una peor calidad del frame final.
Imagen

Hablemos ahora sobre la interpolación de frames, en esta técnica el frame se calcula 2 partes con todas sus capas, que una vez unidas dan la sensación de un frame completo, Es una técnica para ahorrar recursos de cálculo, y es sin ninguna duda la técnica que peor calidad gráfica ofrece, debido a la aparición de defectos donde las mitades se “unen” y se puede concluir con total seguridad que ofrece peor calidad visual que una señal 720p.
Imagen

El uso de interlineados da lugar a numerosos defectos o artefactos, denominados vulgarmente "peines"

Imagen


Y en último lugar tenemos la Reproyeccion de frames, es la técnica que utiliza PSVR, y explicado de manera sencilla, cada frame calculado por la maquina se utiliza dos veces (una vez en cada ojo) cambiando ciertos valores en el mismo, siendo mucho más rapido para la maquina (ps4) que calcular dos frames completos.
La principal ventaja de esta técnica es poder duplicar la frecuencia en la pantalla de PSVR de 60 a 120 hercios, teniendo ps4 que calcular 60 frames y a pesar de la necesidad de cálculo extra, es mucho menor que el tener que calcular a 120 frames.

Imagen
Presentacion de PSVR


Esta técnica añade mucha latencia (el tiempo total que necesita) al proceso de calculo del frame; teniendo en cuenta que toda la GPU tiene un tiempo de 16 milisegundos para calcular el frame en condiciones "normales" (60 frames en cada segundo) tener que calcular el frame reproyectado hace que la GPU tenga menos tiempo, lo que obligatoriamente significa una reducción drástica de la calidad visual de videojuego.
Además "reutilizar" frames es incompatible con transparencias, reflexiones, iluminación y otros efectos, así que solo sirve para juegos con un apartado grafico muy básico, y por esta razón se descartó como solución para VR de PC hace aproximadamente dos años, siendo solo una solucion viable para juegos de corte casual.



Un saludo de parte del equipo de TG

cron