Downsampling

Bueno, antes a esto se le llamaba SuperSampling AntiAliasing y no Downsampling. ¿En que consiste? La idea es renderizar internamente la escena a una resolución mayor pero mostrarla en pantalla a resolución menor. Es decir, coges una muestra (sample) y le bajas la resolución (down).

El Supersampling es lo que en su día se llamaba también Full Scene Antialiasing, basicamente el funcionamiento es muy simple:

SSAA

Basicamente cuando se reduce la resolución la muestra el pixel resultante se obtiene a partir de una combinación de colores de los pixeles que se encontraban en el mismo espacio. La ventaja de esto es que permite conseguir imagenes de mayor calidad y no algo nuevo, hay muchos juegos en PS4 Pro que se renderizan a más de 1080P para el modo 1080P y acaban ganando en nitidez.

En estas dos imagenes del propio Titanfall 2 corriendo en PS4…

PS4.png

… y PS4 Pro se puede observar la diferencia:

ps4pro2kkjjc.png

Digamos que ciertos elementos del escenario ganan en nitidez. En todo caso es algo que no me gusta ya que la calidad visual de un juego no es solo la resolución sino también la calidad de los pixeles que depende obviamente de la cantidad de operaciones por pixel que se hagán. Es decir, con el Downsampling estas gastando inutilmente recursos en calcular esos pixeles que no vas a ver para luego hacer downsample… ¿No sería mejor renderizar a 1080P de manera directa utilizando toda la potencia de la consola para aplicar detalles visuales que no serian posibles?

Se que soy pesado con el tema pero Tim Sweeney llego a afirmar que para la iluminación global en el UE4 eran necesarios 2.5 TFLOPS en adelante a 1080P.

sweeneytflops

¿Que ocurre? Que ninguna de las consolas actuales tiene una potencia mayor que 1.8 TFLOPS (PS4) y las iteraciones no pueden correr un código diferente al de sus hermanas pequeñas y por tanto no se puede crear un motor exclusivo que utilice un tipo de iluminación más compleja que mejore la calidad visual de la escena y aproveche tanto la potencia de PS4 Pro como la de Xbox One X para ello.

En el método de rasterización normal, el que utilizan el 99% de los juegos de cara a representar la realidad no podemos representar el segundo rebote de luz. En comparación con otras técnicas más fidedignad como el Raytracing la cosa se queda corta.

RasterizationRayTracingEcuation

El motivo de ello es muy simple, en la rasterización lo que hacemos es dividir la geometría de la escena en trozos pequeños que rasterizamos en fragmentos, texturizamos y al final del pipeline ordenamos para que se genere la escena final. Ninguno de los fragmentos tiene información y constancia de lo que ocurre alrededor pero esto permite paralelizar el pipeline y hacer que al renderizado de la escena sea muy rápido por lo que es ideal para videojuegos.

¿La forma de obtener información de la escena con la rasterización? Pues renderizar la escena y voxelizarla de tal manera que la podamos convertir en una estructura de datos espacial, ya sea un Octree, un KD-Tree e incluso una simple colección de tiles 3D.

voxelization

Una vez se ha voxelizado la escena tenemos la suficiente información de la misma para aplicar iluminación global y mejorar la calidad visual de la escena. ¿Una demostración palpable de la iluminación global? Aquí teneis un ejemplo bien majo.

Pero claro, hay que vender televisores y malgastar recursos en la resolución… ¿Cual es el motivo? Sinceramente no lo se y tengo muy claro que la siguiente generación va a ser 4K pero cuando salga el nivel de penetración de las teles 4K será mucho pero que mucho mayor. ¿Pero nos vamos a confirmar con una calidad de imagen limitada producto de un modelo de iluminación limitado? Espero que no, ya que sería una decepción muy grande. Es más, el mejorar la iluminación ahorra costes de desarrollo por el hecho que no tienes que depender de los artistas para simular la iluminación. Y por si fuera poco tiene la enorme ventaja de poder representar ciertos materiales de manera más correcta al representar la refracción de la luz de manera más precisa sobre estos.

Si ahora mismo muchos de los juego de la generación PS3/360 se remasterizaran no solo con texturas mejores sino con iluminación así de compleja sería la noche y el día y os parecerían mil veces mejor visualmente que muchos juegos de la actual generación a 4K o pseudo-4K.