Un fragment shader lanza un rayo por píxel contra 30 esferas animadas y un suelo de cuadros, con sombras duras y hasta dos rebotes de reflexión, sin geometría rasterizada en absoluto. Prueba la tasa de relleno bruta de la GPU y el rendimiento ALU de los shaders. Cuantos más FPS, mejor.
El trazado de rayos dibuja una escena trabajando hacia atrás desde la cámara: para cada píxel se lanza un rayo a la escena, y lo primero que golpea determina el color de ese píxel, en lugar del enfoque más habitual (la rasterización), que proyecta triángulos sobre la pantalla y averigua qué píxeles cubren. Es la misma técnica básica que usan los renderizadores de calidad cinematográfica sin conexión y, más recientemente, el trazado de rayos acelerado por hardware de las GPU modernas, porque hace que reflejos, sombras y refracción físicamente exactos surjan de forma natural de la misma lógica de intersección de rayos, en lugar de necesitar trucos de rasterización distintos para cada efecto.
Este benchmark implementa un pequeño trazador de rayos en tiempo real íntegramente dentro de un único fragment shader de WebGL2: cada píxel de la pantalla intersecta de forma independiente su propio rayo con una escena de treinta esferas animadas y un suelo de cuadros, calcula el sombreado y una sombra dura hacia una luz direccional, y luego sigue hasta dos rebotes de reflexión más sobre cualquier superficie especular que golpee. Nada de la geometría se rasteriza en el sentido tradicional; toda la imagen es la salida directa de las matemáticas de intersección de rayos por píxel que se ejecutan en los núcleos de shader de la GPU.
La puntuación son los fotogramas por segundo medios sostenidos durante una ejecución fija de 15 segundos: cuanto más alto, mejor. Como cada píxel realiza de forma independiente el mismo lote de pruebas de intersección rayo-esfera, rayos de sombra y rebotes de reflexión, la carga escala directamente con la resolución de pantalla y el rendimiento de los shaders de la GPU y no con la velocidad de la CPU, lo que la convierte en una medida comparativamente pura del cálculo bruto de la GPU. Los resultados se envían al ranking global con el modelo de GPU realmente detectado, para que las comparaciones de hardware entre dispositivos tengan sentido.