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

David Rodriguez
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.