En estos días estoy haciendo una serie de entradas sobre la llegada del Raytracing a los videojuegos, esta entrada va a ser para muchos un jarro de agua fria pero es importante para calmar el hype.

yRkOpV

El motivo por el cual no se va a pasar al Raytracing completo es porque este solo tiene sentido cuando queremos representar la iluminación indirecta de manera dinámica, es decir… Cuando la iluminación de un objeto impacta sobre todo que puede reflejar o reflectar la luz. Los materiales que tienen más números de hacer esto son los que tienen un alto cociente de reflectancia, de ahí a que las demos mostradas sean superficies «Glossy» o Metálicas.

gdc-epic-games-nvidia-ray-tracing-demo-slim_1200x500.jpg

dxr-seed-800x450

Es en este tipo de escenas donde la Rasterizacion es peor que el Raytracing, pero si estamos renderizando una escena donde por ejemplo la complejidad de la iluminación no es mucho más alta los resultados son bastante…

Se que Quake 2 es un juego muy pero que muy viejo, pero fijaos la cantidad de ruido que hay en la imagen, esto es debido a que en el Raytracing (el Path Tracing es un derivado de este) muchas veces el algoritmo falla a la hora de determinar si hay un objeto y necesita renderizar varias muestras por escena, es decir… Calcular n veces la escena para tener una imagen de acorde y en escenas con iluminación directa no supone una ventaja respecto a la rasterización sino una enorme desventaja en rendimiento.

spp-compare-1

De ahí a tirar de un pipeline híbrido porque la ventaja del Raytracing en escenas compuestas solo por iluminación directa y no teniendo en cuenta la indirecta no existen y hay muchos juegos que están pensados artisticamente de una manera concreta por lo que generar de manera dinámica la iluminación indirecta puede romper el aspecto artístico de un juego por completo.

Ahora bien… ¿Que ocurre cuando tenemos una escena cuyas carácteristicas son al contrario de lo mostrado?

Y si, se cual es vuestra reacción…

gaijin4koma_peersblog_1200684654

El motivo de ello es que si tenemos un escenario estático entonces no tiene sentido utilizar Raytracing para la iluminación indirecta dinámica porque los objetos que generar los rayos de luz indirectos no se mueven de su posición. Es cierto que el escenario rota sobre el eje pero es tan fácil como rotar de la misma manera el mapa de luces pre-definido. Sinceramente no se como Nvidia y 4A han mostrado esa demostración porque no demuestra nada, es más, hace que la gente se pregunta… ¿Para que todo esto?

En cambio si la hierba del escenario se moviese, si hubiesen añadido viento a la escena si que podrían mostrar sin problemas una mejora en la iluminación de la escena, no muy allá. ¿A que me refiero? Pues que deberían haber mostrado una escena como la siguiente más o menos:

sK6en9K.gif

El otro punto importante es la cantidad de fuentes de luz, una escena a mundo abierto teniendo solo el sol iluminando es mucho menos compleja luminicamente que una escena de noche con multitud de luces en escena.

batman-arkham-knight-review-pc-485286-5

Y aquí entramos en un tema importante, el renderizado por diferido se creo en su día para poder aumentar la cantidad de luces en escena sin tener que perjudicar el rendimiento, si el Raytracing híbrido es una evolución de la misma significa que todas esas luces serán calculadas y por tanto la mejora visual en los juegos en mundo abierto a plena luz del día no será tan alta como por ejemplo en los escenarios nocturnos y/o donde intervengan superficies con un alto nivel de reflectividad de la luz.

Y con esta entrada dejo el tema por esta semana, no tengo más que decir sobre el tema, espero que os haya resultado todo didáctico.