Quake II alcanza los 60 FPS ejecutándose en una Geforce Titan XP mediante path tracing

David Rodriguez
25 27 84
Noticias » Juegos
Aunque alcanzar (de forma no muy consistente) los 60 cuadros por segundo en un juego lanzado hace 20 años corriendo sobre la tarjeta gráfica más potente del mercado puede no parecer motivo de noticia, el peculiar método empleado para esta demostración bien merece su reconocimiento.

El programador de rutinas gráficas Edd Biddulph lleva trabajando desde hace más de un año en un proyecto sin nombre oficial (pero al que sugiere identificar como Raylgun) que traslada la extraordinariamente intensiva técnica de cálculo de gráficos 3D llamada path tracing al motor de dibujado en tiempo real del clásico Quake II que id Software lanzó en 1997.

La calidad de imagen está limitada por el tamaño de muestra empleado (que se manifiesta como ruido similar al grano fotográfico) y la terrible compatibilidad de la compresión de vídeo con este defecto.

El path tracing o "traceado de caminos" es una técnica de dibujado de gráficos tridimensionales basada en los experimentos de Monte Carlo (algoritmos que emplean un muestreo aleatorio masivo para resolver problemas numéricos deterministas complejos) que busca la obtención de un sistema de iluminación fiel al de la realidad. En una explicación muy simplificada, el algoritmo integra todos los efectos que diversas fuentes de luz llevan a cabo sobre cada punto de la superficie de cada objeto de una escena y después reduce esta enorme cantidad de información a la necesaria para una correcta representación de ese píxel desde el punto de vista de la cámara.

En oposición a técnicas de dibujado habituales como el scanline rendering, el tiled rendering o las distintas variaciones del Z-buffering que emplean el grueso de los sistemas actuales, el path tracing proporciona a cambio de su proporcionalmente costosísima computación un resultado que no necesita trucos gráficos para componer una imagen realista. Así, efectos como las sombras suaves, la profundidad de campo, el desenfoque de movimiento o la oclusión ambiental se manifiestan de forma natural en este método, una capacidad que ni siquiera exhiben los también muy pesados algoritmos de ray tracing empleados habitualmente para las películas de animación.

Los expertos de Disney/Pixar explican los principios de Path Tracing (no específicamente para tiempo real).

Del mismo modo que en los últimos años algunas compañías como Intel o Nvidia han presumido de sus logros con la ejecución en tiempo real de demostraciones geométricamente simples basadas en ray tracing, el proyecto de Biddulph ilustra cómo los crecientes avances en potencia de cálculo de las GPU permiten una reconstrucción a velocidad jugable de escenas simples dibujadas íntegramente mediante la técnica del path tracing. La elección de Quake II (o más bien de su port de código abierto Yamagi Quake 2) como base se debe, entre otros motivos, a limitaciones del diseño de este clásico como las fuentes de luz de geometría simple, la estructura de sus niveles o el manejo de los volúmenes que los envuelven.

Quake II se convirtió a su lanzamiento en adalid de la ola de cambio que las tarjetas aceleradoras 3D provocarían en el PC y en los videojuegos en general. La optimización de su ejemplar código de animación, diseño de niveles y dibujado permitía su ejecución con un buen rendimiento tanto en las CPUs más potentes de la época como (con mejor aspecto) en las primeras generaciones de GPUs míticas como las 3DFX Voodoo. La sencillez y la elegancia de sus rutinas y recursos lo convierten en plataforma ideal para demostraciones como la que nos ocupa, que sustituye los lightmaps estáticos empleados entonces por un cálculo preciso de cada fuente de iluminación, y en la que cada objeto arroja sombras realistas.

La presencia de una aparentemente terrible cantidad de ruido de imagen se debe a la aplicación de duras limitaciones de muestreo del algoritmo que permitan su ejecución en tiempo real en el hardware actual de máximo nivel (el trazado de rayos para cada punto se detiene después de un cierto intervalo). Expertos como Biddulph vaticinan la necesidad de esperar otros 15 o 20 años hasta que la capacidad de las GPUs haga factible su uso con métodos como el descrito sobre escenas de la complejidad esperada en un título actual.

Ejecución de la clásica "demo1" de Quake II en una AMD FirePro W8100 con un tamaño de muestra mucho menor (y por lo tanto menos rayos que llegan a la cámara y más ruido de imagen).

Como referencia a modo de benchmark, anteriores pruebas del algoritmo en otras tarjetas gráficas mostraron un rendimiento medio que va desde los casi 50 FPS de la AMD FirePro W8100 o los poco más de 30 FPS de la GTX 960 hasta los 22 FPS de una GTX 680.

El responsable del proyecto ha dispuesto una versión menos comprimida del vídeo y una demo para Windows que incluye la versión necesaria de Quake 2 basada en los archivos de su demo gratuita junto con su implementación del algoritmo de path tracing. También mantiene en Github el código fuente de esta versión, que soporta sistemas operativos Windows, GNU/Linux y macOS.
84 comentarios
  1. mmm complejo
  2. Como fanático de la tecnología y estudiante de videojuegos y animación 3D esto me pone cachondisimo a niveles casi ilegales...
  3. Esto es lo que hace blender no?
  4. Pues ejecuto el exe y se ve como el juego normal.. wtf? XD
  5. 256k escribió:Pues ejecuto el exe y se ve como el juego normal.. wtf? XD

    Tienes que usar códigos de consola para activar los efectos.
  6. adriano_99 escribió:
    256k escribió:Pues ejecuto el exe y se ve como el juego normal.. wtf? XD

    Tienes que usar códigos de consola para activar los efectos.


    Ya vi cual.. Se ve horrible omfg xD, 50fps en una 1070
  7. El futuro sin duda.
  8. Que curioso ver un juego que esta hecho con poquisimos poligonos pero con una iluminacion espectacular XD
    Seguro que hay algunos que al ver el video pensaran... "meh tampoco es para tanto"... pero hay que echarle imaginacion... imaginaros un juego moderno con esto (y con HDR), el resultado puede ser increible

    Eso de que pasaran 20 años para tenerlo funcionando en juegos modernos... ya veremos... este tipo de cosas siempre empiezan cuando alguien hace "saltar la liebre" y en ese momento queda claro que hay que ir por ese camino
    Me da la impresion de que esto es lo que ha pasado... estos ya han hecho "saltar la liebre" y queda claro que esto del "path tracing" es el futuro
    Ahora hay que ver como los fabricantes de hardware se adaptan a esta tecnica y a esperar las diferentes revisiones de software para hacer mas simple los calculos


    Lo que se usa en muchos motores de renderizado es el "ray tracing"... donde se calculan las trayectorias de los rayos de luz desde el punto en el que se generan (solar, focal, etc..) hasta la camara. Y esto del "path tracing" es justo en la direccion opuesta
    A nivel tecnico no tengo ni la mas remota idea de donde esta la ventaja... pero a simple vista se nota que esto tiene resultados muy cercanos a la realidad


    P.D.
    La musiquilla del ultimo video con bateria y guitarras electricas me pone
    Y el efecto de granulado de la imagen no esta tan mal... actualmente hay muchos juegos que usan granulado y otros filtros cutres (para reducir los calculos o/y ocultar errores) y no esta tan mal... es aceptable
  9. Venga va lo diré yo:

    (spoiler, visita la página completa para verlo)
  10. chachin2007 escribió:Venga va lo diré yo:

    (spoiler, visita la página completa para verlo)


    Yo tampoco sinceramente
Ver más comentarios »