FPS: --
时间: 15s
WebGL 物理基准测试

牛顿 3D 基准测试

10 万个在重力作用下弹跳并撞击墙壁的球,用 WebGL 通过一次实例化绘制调用渲染。测试 GPU 渲染性能和 CPU 物理更新速度。FPS 越高越好。

关于牛顿 3D 基准测试

牛顿 3D 基准测试通过模拟 10 万个刚性球体在封闭的三维盒子中受重力作用并与墙壁发生弹性碰撞,来衡量 GPU 渲染性能和 CPU 物理更新速度。每一帧,CPU 用辛欧拉法积分位置——先用重力更新速度,再按时间步长推进位置——并通过把垂直于每个面的速度分量反射并乘以恢复系数的阻尼因子来处理与边界的碰撞。有了 10 万个球,在开始绘制之前每个物理步长就要进行 60 万次算术运算。

GPU 通过 Three.js 的 InstancedMesh 用一次实例化绘制调用绘制全部 10 万个球,这是 WebGL 中对重复几何体最省 GPU 资源的技术。每一帧都要把 6.4 MB 的完整实例矩阵缓冲区从 CPU 上传到 GPU 以反映新的位置,这直接考验 GPU 显存带宽。每个球是一个低多边形的球体网格,由四个彩色点光源以 Phong 着色照亮。摄像机缓慢环绕场景,因此以设备的原生像素密度在整个窗口上持续考验填充率。

得分是在固定 15 秒运行期间持续的平均每秒帧数:越高越好。快速的 GPU 能以高吞吐处理 10 万个实例的绘制调用和每帧的缓冲区上传;快速的 CPU 能很快完成物理积分循环,使 GPU 永远不会无事可做。这种组合同时考验图形管线和 JS 引擎。结果会连同 GPU 渲染器和核心数一起提交到全球排行榜,使不同设备之间的硬件比较有意义。