¿Qué es Path Tracing y Ray Tracing? ¿Y por qué mejoran los gráficos?

Si ha echado el más mínimo vistazo a las noticias sobre juegos y gráficos(gaming and graphics news) últimamente, entonces ha escuchado la última y mejor palabra de moda: trazado de rayos(ray tracing) . Es posible que también haya escuchado una palabra que suena similar llamada trazado(path tracing) de ruta . Y podría ser totalmente perdonado por no comprender completamente cuál es cualquiera de los procesos.

Una explicación simple es que tanto el trazado de rutas como el trazado de rayos(ray tracing) son técnicas gráficas que dan como resultado imágenes de aspecto más realista a costa de una potencia computacional significativamente mayor. Hay un video de Minecraft(Minecraft video) en YouTube que demuestra los aspectos particulares del trazado de rayos de una manera clara, pero también ilustra el estrés que ejerce sobre un sistema.

Si esa es la única explicación que necesitas, ¡genial! Pero si desea profundizar y descubrir cómo funciona cada técnica y por qué las empresas de hardware de GPU(GPU hardware) están cobrando una pequeña fortuna por las tarjetas con capacidad de trazado de rayos, siga leyendo.

Rasterización y Computación Gráfica

Cualquier imagen que vea en la pantalla de una computadora(computer screen) no comenzó como esa imagen. Comienza como una imagen rasterizada o vectorial(vector image) . Una imagen rasterizada(raster image) se compone de una colección de píxeles sombreados.

Una imagen vectorial(vector image) se basa en fórmulas matemáticas que significan que la imagen se puede aumentar de tamaño casi indefinidamente. La desventaja de las imágenes vectoriales(vector image) es que es difícil lograr detalles más precisos. Las imágenes vectoriales(Vector) se utilizan mejor cuando solo se necesitan unos pocos colores.

La principal fortaleza de la rasterización es su velocidad, especialmente en comparación con técnicas como el trazado de rayos. Su GPU , o unidad de procesamiento de gráficos, le indicará al juego que cree una imagen 3D a partir de formas pequeñas, generalmente triángulos. Estos triángulos se convierten en píxeles individuales y luego se pasan por un sombreador para crear la imagen que ves en la pantalla.

La rasterización ha sido la opción preferida para los gráficos de videojuegos durante mucho tiempo debido a la rapidez con la que se puede procesar, pero a medida que la tecnología actual comienza a toparse con sus límites, se necesitan técnicas más avanzadas para pasar al siguiente nivel. Ahí es donde entra el trazado de rayos.

El trazado de rayos(Ray) se ve mucho más realista que la rasterización, como lo ilustra la imagen a continuación. Mira los reflejos en la tetera(tea pot) y la cuchara.

¿Qué es el trazado de rayos?

A nivel de superficie(surface level) , el trazado de rayos(ray tracing) es un término general que significa todo, desde una única intersección de luz y objeto hasta fotorrealismo completo. Sin embargo, en el contexto más común que se usa hoy en día, el trazado de rayos(ray tracing) se refiere a una técnica de representación(rendering technique) que sigue un haz de luz (en píxeles) desde un punto establecido(set point) y simula cómo reacciona cuando encuentra objetos.

Tómate un momento y mira(moment and look) la pared de la habitación en la que te encuentras. ¿Hay una fuente de luz en la pared o la luz se refleja en la pared desde otra fuente? Los gráficos con trazado de rayos(Ray) comenzarían en su ojo y seguirían su línea de visión hasta la pared, y luego seguirían el camino de la luz desde la pared hasta la fuente de luz.

El diagrama anterior ilustra cómo funciona esto. El motivo de los "ojos" simulados (la cámara en este diagrama) es disminuir la carga en la GPU .

¿Por qué? Bueno, el trazado de rayos no es nuevo(t brand-new) . De hecho, existe desde hace bastante tiempo. Pixar usa técnicas de trazado de rayos para crear muchas de sus películas, pero los gráficos cuadro por cuadro de alta fidelidad en las resoluciones que Pixar logra toman tiempo.

mucho(A lot) tiempo Algunos cuadros en Monsters University tardaron 29 horas cada uno. Toy Story 3 tomó un promedio de 7 horas por cuadro, y algunos cuadros tardaron 39 horas según una historia de 2010 de Wired.

Debido a que la película ilustra el reflejo de la luz de cada superficie para crear el estilo gráfico que todos(style everyone) conocen y aman, la carga de trabajo(work load) es casi inimaginable. Al limitar las técnicas de trazado de rayos solo a lo que el ojo puede ver, los juegos pueden utilizar la técnica sin causar que su procesador de gráficos se derrumbe (literalmente).

Hecha un vistazo a la imagen de abajo.

Eso no es una fotografía, a pesar de lo real que parece. Es una imagen con trazado de rayos. Trate de imaginar cuánta energía se requiere para crear una imagen como esta. Un rayo se puede rastrear y procesar sin muchos problemas, pero ¿qué pasa cuando ese rayo rebota en un objeto?

Un solo rayo puede convertirse en 10 rayos, y esos 10 pueden convertirse en 100, y así sucesivamente. El aumento es exponencial. Después de un punto, los rebotes y reflexiones más allá del terciario y el cuaternario muestran rendimientos decrecientes. En otras palabras, requieren mucha más energía para calcular y mostrar de lo que valen. En aras de representar una imagen, se debe dibujar un límite en alguna parte.  

Ahora imagina hacer eso de 30 a 60 veces por segundo. Esa es la cantidad de energía requerida para usar técnicas de trazado de rayos en los juegos. Sin duda es impresionante, ¿verdad?

La accesibilidad de las tarjetas gráficas con capacidad de trazado de rayos(ray tracing) aumentará con el paso del tiempo y, con el tiempo, esta técnica estará tan disponible como los gráficos 3D. Por ahora, sin embargo, el trazado de rayos(ray tracing) todavía se considera la vanguardia de los gráficos por computadora. Entonces, ¿cómo entra en juego el rastreo de rutas?

¿Qué es el seguimiento de rutas?

El trazado(Path tracing) de rutas es un tipo de trazado de rayos(ray tracing) . Cae bajo ese paraguas, pero donde el trazado de rayos(ray tracing) se teorizó originalmente en 1968, el trazado de rutas no entró en escena hasta 1986 (y los resultados no fueron tan dramáticos como los de ahora).

¿Recuerdas el aumento exponencial de los rayos mencionado anteriormente? El rastreo de ruta(Path) proporciona una solución a eso. Cuando se usa el trazado de ruta para renderizar, los rayos solo producen un solo rayo por rebote. Los rayos no siguen una línea establecida(set line) por rebote, sino que salen disparados en una dirección aleatoria.

Luego, el algoritmo de trazado de ruta toma una muestra aleatoria de todos los rayos para crear la imagen final. Esto da como resultado el muestreo de una variedad de diferentes tipos de iluminación, pero especialmente la iluminación global.

Una cosa interesante sobre el trazado(path tracing) de rutas es que el efecto se puede emular mediante el uso de sombreadores. Recientemente apareció un parche de sombreado para un (shader patch)emulador de Nintendo Switch(Nintendo Switch emulator) que permitía a los jugadores emular la iluminación global trazada en la ruta en títulos como The Legend of Zelda: Breath of the Wild y Super Mario Odyssey. Si bien los efectos se ven bien, no son tan completos como el trazado de ruta(path tracing) real .

El trazado(Path tracing) de rutas es solo una forma de trazado de rayos. Si bien fue aclamado como la mejor manera de renderizar imágenes, el rastreo de rutas tiene sus propios defectos.

Pero al final, tanto el trazado de rutas como el trazado de rayos(path tracing and ray) dan como resultado imágenes absolutamente hermosas. Ahora que el hardware de las máquinas de consumo ha llegado a un punto en el que el trazado de rayos(ray tracing) es posible en tiempo real en los videojuegos, la industria está lista para lograr un avance que es casi tan impresionante como el paso de gráficos 2D a 3D.

Sin embargo, aún pasará algún tiempo, al menos varios años, antes de que el hardware necesario se considere "asequible". A partir de ahora, incluso las tarjetas gráficas necesarias cuestan más de $ 1,000.



About the author

Soy un científico informático con más de 10 años de experiencia trabajando en el campo de los navegadores, Microsoft Office y OneDrive. Me especializo en desarrollo web, investigación de experiencia de usuario y desarrollo de aplicaciones a gran escala. Mis habilidades son utilizadas por algunas de las principales empresas del mundo, incluidas Google, Facebook y Apple.



Related posts