FPS: --
Tiempo: 15s
Benchmark de física en WebGL

Benchmark Newton 3D

100 000 bolas bajo la gravedad que rebotan en las paredes, dibujadas en WebGL con una sola llamada de dibujo instanciada. Prueba el rendimiento de renderizado de la GPU y la velocidad de actualización de la física en la CPU. Cuantos más FPS, mejor.

Sobre el benchmark Newton 3D

El benchmark Newton 3D mide el rendimiento de renderizado de la GPU y la velocidad de actualización de la física en la CPU simulando 100 000 esferas rígidas sometidas a la gravedad y a colisiones elásticas con las paredes dentro de una caja tridimensional cerrada. En cada fotograma la CPU integra las posiciones con Euler simpléctico —actualiza la velocidad con la gravedad y luego avanza la posición según el paso de tiempo— y resuelve las colisiones con los bordes reflejando la componente de la velocidad normal a cada cara con un factor de amortiguación por restitución. Con 100 000 bolas, esto supone 600 000 operaciones aritméticas por paso de física antes de empezar a dibujar.

La GPU dibuja las 100 000 bolas en una sola llamada de dibujo instanciada con InstancedMesh de Three.js, la técnica más eficiente para la GPU con geometría repetida en WebGL. En cada fotograma se envía de la CPU a la GPU el búfer completo de matrices de instancias, de 6,4 MB, para reflejar las nuevas posiciones, lo que exige directamente al ancho de banda de la memoria de la GPU. Cada bola es una malla esférica de pocos polígonos iluminada por cuatro luces puntuales de colores con sombreado Phong. La cámara orbita lentamente alrededor de la escena, de modo que la tasa de relleno se ejerce de forma continua en toda la ventana con la densidad de píxeles nativa del dispositivo.

La puntuación son los fotogramas por segundo medios sostenidos durante una ejecución fija de 15 segundos: cuanto más alto, mejor. Una GPU rápida maneja la llamada de dibujo de 100 000 instancias y la subida del búfer en cada fotograma con alto rendimiento; una CPU rápida completa enseguida el bucle de integración de la física para que la GPU nunca se quede sin trabajo. La combinación exige a la vez a la canalización gráfica y al motor de JS. Los resultados se envían al ranking global junto con el renderizador de la GPU y el número de núcleos, para que las comparaciones de hardware entre dispositivos tengan sentido.