gambapaketera escribió:Buenas a todos.
Voy a intentar contestar desde el punto de vista de alguien que se encuentra actualmente desarrollando un juego que hace uso de Raytracing. Además, no intento convencer a nadie, no me voy a meter en batallas en las que nadie me ha llamado, pero dejadme que exponga mi opinión en forma de uno de los ladrillacos más enormes de la historia de este foro!!!
Para ello, os pongo en antecedentes, tengo más años que un nudo, voy camino de los 50 y a lo largo de mi vida he podido asistir a muchas tecnologías que han cambiado de manera significativa lo que son los videojuegos hoy día.
Hace 20 años los juegos no arrojaban sombras en tiempo real. Recuerdo que, justo por aquel entonces yo hacía mis pinitos con la aplicación Virtools Dev. Aquella aplicación tenía una opción realmente pontente, era uno de los primeros motores disponibles al público que permitía sombras en tiempo real en el personaje. Hasta entonces, se simulaban mediante un círculo situado debajo del personaje que transformaba su escala según la distancia a éste.
A esto se le llamaba blob shadow, y Virtools Dev era capaz de crear una sombra "real" del personaje mediante una simple opción. Esta sombra, a pesar de que era muy "dura", básicamente una proyección en el plano del personaje de color negro sin ninguna suavidad, era todo un avance. Eso sí, en cuanto se activaba, los fps se iban al garete.
Sin embargo, no hay duda de que, lejos de dejarlo de lado, se fué incorporando poco a poco al lenguaje del videojuego hasta el día de hoy, en el que no concebimos un juego sin sombras que apoyen el contacto del personaje sobre el suelo, las sombras que arrojan objetos etc.
Por supuesto, el hardware ha tenido mucho que ver en todo eso. Igual que activar sombras en el personaje era impensable debido a la pérdida de rendimiento, poco a poco ha tenido un impacto residual en los equipos más modernos.
Y es que no podemos hablar de sombras sin hablar de iluminación, al fin y al cabo es la iluminación la que provoca esas sombras, cierto? Y mucha gente dirá (ya había sombras antes sin que el rendimiento cayese en picado como tú nos dices!!!).
Bien, completamente cierto, y es la iluminación es, computacionalmente hablando, muy costosa. En el mundo real cada rayo de luz incide en una superficie, y ésta superficie además refleja algo de esa luz a la escena. Es por ello que debajo de un escritorio, aunque no incida directamente la luz, no está 100% oscuro.
Esto se denomina iluminación global (global illumination), y es realmente costoso de hacer. Es, ni más ni menos, lo que hace el ray tracing.
Ahora bien, hemos vivido muchos juegos que NO sufrían de estas zonas negras antes de tener raytracing, ¿cómo es que funcionaban?
Aquí entran los lightmaps, o mapas de iluminación. Básicamente, sobre los modelos sin iluminar se les aplica iluminación global que NO es en tiempo real.
Un lightmap toma minutos en compilar, en crearse. No es, ni mucho menos, en tiempo real, pero permite tener una iluminación realista.
Puede parecer mágico, pero realmente lo que está pasando es que se está proyectando "calcomanías" en los modelos, directamente encima de las texturas, oscureciendo las partes adecuadas. Es una grandísima solución, puesto que tienes iluminación gratis. El punto negativo es que esa iluminación no es dinámica, no podrías mover una luz y cambiar las sombras puesto que éstas no reaccionarían. Esto supone un problema de diseño que muchas veces implica desechar ideas por no ser posibles técnicamente.
Ahora vamos directamente al raytracing actual. ¿Qué permite el raytracing? pues algo que todavía no me creo que podamos tener hoy día, y es iluminación global en tiempo real!!! es pura magia!! es impresionante que podamos acceder a algo tan absolutamente poderoso como raytracing en tiempo real.
Evidentemente, tiene un grandísimo coste, y es que el hardware está todavía en sus primeros estadios. Los tensor cores que posibilitan el raytracing no son capaces de dotar a las escenas de iluminación dinámica sin pérdida de rendimiento, no pueden asumir al 100% su renderizado.
En la serie 2000 de nvidia ese coste era todavía mayor que en la serie 3000 (dlss aparte), pero es que estamos asistiendo al nacimiento del futuro de la iluminación de los videojuegos ni más ni menos.
Todo mejorará en cuanto a rendimiento. Es más, en las nuevas versiones del motor Unreal Engine 5 hay un sistema de iluminación global llamado "Lumen". Básicamente es raytracing sin necesidad de hardware. He podido correr una escena con iluminación global totalmente dinámica en una 1070 sin aceleración de hardware.
Eso significa que el gran problema del raytracing está cercano de solucionarse. Mejorar la iluminación sin coste adicional, puesto que Lumen es una tecnología que también acepta aceleración por hardware, pero el hecho de que funcione en tarjetas varias generaciones anteriores, me llena de esperanza para el futuro.
Ahora bien, cuál es el principal problema del raytracing hoy día? Pues que nos lo han vendido mal. Nos han vendido que simplemente proporciona mejores reflejos (evidentemente, además de ser una tecnología que no depende de lo que haya en pantalla, ¿habéis probado a, en un charco que tenga el reflejo de algo, bajar la vista hasta que ese "algo" desaparece de pantalla? el reflejo también desaparece, algo que no sucede con raytracing) y poco más.
No es así, el raytracing, desde el punto de vista del diseño de videojuegos permite hacer cosas que no eran posibles antes sin usar lightmaps.
Si podéis, id a este vídeo:
https://www.youtube.com/watch?v=HwjMccagu1YEn él, este desarrollador habla de la diferencia de una escena con iluminación global y sin iluminación global. Veréis cómo el interior continúa iluminado aunque no haya ninguna "ventana" abierta, y cómo después, usando unreal engine 5 con el motor Lumen la luz sí reacciona de manera realista. Además, permite que los materiales emisivos sí que emitan luz "real" (hasta ahora, si tenías un neon tenías que ponerle un punto de luz además del material emisivo para que "iluminase").
Como véis, raytracing va mucho más allá de un par de sombras por aquí o un reflejito por allá. NO es un cambio de noche y día que justifique la pérdida de rendimiento, que es su gran problema.
Pero realmente raytracing, los próximos 10 años será algo tan común como los filtros anisotrópicos, el antialiasing etc.
Raytracing no me parece una tecnología tan espectacular como para poner unas imágenes comparativas (que no sean de reflejos) y que impresionen al jugador medio, que le suele sudar mucho la tecnología y sólo quiere brillitos.
Pero os aseguro que, desde mi punto de vista, que puede ser erróneo, NO es una chorrada, pero sí que es víctima de las campañas de márketing que, además, no han sabido transmitir qué implica su inclusión en los juegos.
El futuro de los gráficos pinta muy muy bien, cada vez más cerca del fotorealismo.
Un abrazo a todos!