ray tracing sNES

¿Ray tracing en un cartucho de SNES? No es fácil, pero es posible

Ben Carter, de Shironeko Labs, lo ha hecho. Por los jajas.

El trazado de rayos, más conocido como ray tracing, es un algoritmo que calcula el camino de la luz como píxeles en un plano y simula el efecto que tendría en su trayecto al incidir sobre las distintas superficies virtuales que hay en la imagen que estamos viendo. Esto permite crear animaciones de un gran realismo, y es algo que dará de qué hablar durante la presente generación de consolas puesto que tanto PS5 como Xbox Series han presentado esta característica como estandarte de sus sistemas. Sin embargo, Ben Carter, de Shironeko Labs, es noticia por haber conseguido hacer funcionar el ray tracing en un cartucho de SNES.

 

La idea original era crear algo similar al chip Super FX que usaron títulos como Star Fox, donde la SNES hace funcionar los datos «lógicos» del juego y envía unas pautas de la escena a representar a un chip en el cartucho que genera las imágenes. Esa concepción obligó al creador a limitarse a usar un solo chip en su diseño y a no utilizar ningún otro recurso de procesamiento externo. El chip SuperRT, que así se llama, construye la escena usando un lenguaje de comandos específico que se ejecuta en una de las tres unidades paralelas que incluye, especializada básicamente en procesadores CISC, para realizar tests de intersección de rayos. La descripción de la escena permite la construcción de los objetos utilizando un subconjunto de operaciones CSG, usando planos y esferas como bloques básicos de construcción y haciendo operaciones de adición o substracción que conduzcan a la geometría deseada. El renderizador emite hasta cuatro rayos por píxel, calculando las sombras directas a partir de la dirección de la fuente de luz y el efecto de reflexión.

 

ray tracing snes

 

Ben Carter: «La idea se originó cuando intentaba pensar en algo interesante para un proyecto que me ayudase a aprender diseño en Verilog y FPGA, y el concepto de construir un raytracer simple me vino a la mente (inspirado en parte por un aterradoramente inteligente amigo que está haciéndose su propia GPU). Algo después […] eso se convirtió en «¿No estaría bien intentar hacer raytracing para SNES?», y ahí nació lo del chip SuperRT»

 

El artículo completo, en inglés, está disponible en este enlace. Contiene una descripción muy técnica del proceso, además de imágenes que lo ilustran.