🔥 2025-2026 中文互联网现象级话题

毒蘑菇测试 到底是什么?

一个不到 500 行代码的纯网页,没有后端、没有数据库、没有框架——
却成了全网最火的 GPU 性能基准测试工具

<500 行代码
0 依赖库
100万+ 像素/帧
一探究竟

🤔 毒蘑菇测试,究竟是什么?

如果你最近刷 B 站、抖音或者小红书,大概率见过这样一幕:一个绚丽的 3D 蘑菇在屏幕上旋转,弹幕飘过「显卡冒烟了」「轻薄本直接去世」……

🌐

纯网页,零门槛

不需要下载安装任何软件。打开浏览器,输入网址 cznull.github.io/vsbm,回车即开始。无论 Windows、Mac、Linux,还是手机、平板,只要能上网就能跑。

底层用的是 WebGL —— 浏览器内置的 GPU 编程接口,相当于在网页里跑了一个微型 3D 渲染引擎。

🎮

测的就是显卡性能

它不是传统跑分软件(不会给你一个冰冷的数字),而是通过实时渲染一个极其复杂的 3D 分形图形来考验你设备的 GPU 计算能力。

画面流畅丝滑 → 性能很🐂;画面卡成 PPT → 该换电脑了(或者该清灰了)。

肉眼判断,一测便知

不需要懂技术。拖拽旋转画面,感受流畅度,观察色彩过渡是否平滑——这些就是最直观的性能指标。

更有意思的是,很多人的设备跑着跑着就开始降频(过热保护),画面从流畅变卡顿,这在游戏场景中就是掉帧的元凶。

「与其说是测试工具,不如说是一个让 GPU 做俯卧撑的网页。」

🍄 为什么叫「毒蘑菇」?

一个听起来像植物科普的名字,居然成了显卡测试的代名词——这背后是一个巧妙的双关。

🍄

第一层:长得像蘑菇

测试页面渲染的是一个 Mandelbulb(曼德尔球),这是 Mandelbrot 集合的 3D 扩展——一种数学意义上的分形几何体。8 次幂的 Mandelbulb 在视觉上呈现出层层叠叠的球状结构,顶部膨大、底部收缩,酷似一朵发光的蘑菇,也有人觉得像花椰菜。

8次幂 Mandelbulb
蘑菇 / 花椰菜
☠️

第二层:对设备有「毒」

渲染这个分形需要海量计算:每帧要对 超过 100 万像素 各自执行数百次三角函数运算(atan、acos、sin、cos、pow)。性能不足的设备运行这个网页会出现严重卡顿、掉帧,甚至浏览器直接崩溃。

就像吃了毒蘑菇会让身体不适一样,打开这个网页也会让你的设备「中毒」——只不过中毒的是 GPU 而非肠胃。网友戏称:「毒蘑菇测试,轻薄本的禁区」。

⚙️ 技术原理(通俗版)

不需要编程基础,只需要理解四个关键环节——这就是 500 行代码背后的全部秘密。

01

WebGL —— 浏览器直接指挥 GPU

传统网页只能做简单的文字和图片渲染。但 WebGL 给了网页「超能力」——它可以像 3D 游戏一样,直接调用你电脑的独立显卡来做大规模并行计算。

你的浏览器 WebGL 调用 GPU 显卡 结果返回 屏幕显示

💡 GPU 和 CPU 的区别:CPU 像数学博士,一次算一道难题但算得快;GPU 像一万个小学生,能同时算一万道简单题。毒蘑菇测试就是给这一万个小学生每人发一堆三角函数作业。

02

Ray Marching —— 一步步「摸」出 3D 形状

传统 3D 游戏用三角形拼出模型(你玩的所有 3A 大作都是这么干的)。但毒蘑菇测试用的是另一种方法:Ray Marching(光线步进)

想象你蒙着眼睛走进一个黑暗的房间,伸出双手一步步向前摸索。每走一步你问自己:「撞到墙了吗?」直到摸到墙壁为止——这就是 Ray Marching 的核心思想。对于 1024×1024 的画面,每条光线要走最多 1000 步才能确定是否碰到了分形表面。

计算量估算:1024×1024像素 × 1000步/像素 = 约10亿次探测,每帧。
03

Mandelbulb —— 一个公式迭代出的蘑菇

Mandelbulb 是一种 3D 分形——由数学公式反复迭代生成的自相似结构。它的核心逻辑极其简洁:

① 取一个空间中的点 以原点为参考,计算这个点的球坐标(到原点的距离、水平角、垂直角)
② 角度 × 8,距离的 8 次幂 atan(角度)×8 → 方位角翻8倍,pow(距离, 8) → 半径膨胀
③ 转回直角坐标,加上原位置 从球坐标转回 xyz,然后加回原始点——实现「迭代」
④ 如果位置太远(>6.0),停止 「逃逸条件」,防止无限计算
⑤ 重复 5 次 每一次迭代都在用 atan、acos、sin、cos、pow 这五个重型函数
04

为什么能压榨 GPU?—— 不给任何喘息机会

毒蘑菇测试之所以能成为硬件质检员,靠的是三个设计:

🔁 持续满帧渲染

requestAnimationFrame 驱动,每 16ms 就要完成一帧,GPU 永远在干活。

🔒 gl.finish() 强制同步

这行代码告诉 GPU:「不等你偷懒,必须把所有活干完再继续。」没有缓冲余地。

📐 高精度浮点运算

GLSL 着色器声明 precision highp float,强制走 GPU 的高精度计算路径,性能开销更大。

105 万 像素/帧
×
1000 步/像素
×
5 次迭代/步
×
6 三角函数/迭代
=
~300亿次 浮点运算/秒

🕹️ 亲手感受分形渲染

下面是一个简化版的 Mandelbulb 分形——低分辨率低迭代,纯原理演示。

🖱 鼠标拖拽旋转 🔄 滚轮缩放 📱 触屏滑动

这是演示版,不是测试版

本演示
  • 200×200 像素
  • 150 步光线步进
  • 2 次分形迭代
  • ~20fps 限帧
VS
真正的毒蘑菇测试
  • 1024×1024 像素
  • 1000 步光线步进
  • 5 次分形迭代
  • ~60fps 满帧

⚠️ 计算量差距约 100 倍。真正的毒蘑菇测试能把高端显卡都跑冒烟。