基于 Three.js 和 MediaPipe Hands 的交互式 3D 粒子效果展示,支持双手手势识别、图片粒子散布、多形状切换和实时旋转控制。
- 4 种粒子形状:爱心、圣诞树、土星、球体
- 颜色自定义:实时取色器调整粒子颜色
- 图片粒子散布:上传图片后随机散布到粒子形状中(总量上限15个精灵,按图片数均分),支持按钮上传和拖拽上传
- 双手手势控制:
- 右手:张合手掌控制粒子扩散/收缩
- 左手握拳:打开/关闭全屏图片查看器(自动选中屏幕中央最近的图片)
- 左手张开滑动:左右移动切换查看器中的图片
- 图片查看器:点击缩略图、箭头按钮、键盘方向键或左手滑动切换图片,Esc / 点击背景 / 左手握拳关闭
- XYZ 轴旋转:独立控制每个轴向的自动旋转,速度随时可调;关闭旋转开关后仍可配置轴选
- 鼠标交互:拖拽旋转视角,滚轮缩放
- 坐标轴小工具:左下角 3D 坐标轴指示器,可显示/隐藏
- 全屏模式:一键切换全屏体验
- 星场背景:1200 颗背景星星增加空间感
- Three.js — 3D 渲染引擎
- MediaPipe Hands — 手部关键点检测(双手)
- 纯前端实现,无需后端
直接用浏览器打开 index.html 即可运行。
手势控制需要摄像头权限。如果拒绝权限或浏览器不支持,会自动切换到手动滑块控制。
| 操作 | 效果 |
|---|---|
| 右手张合 | 粒子扩散/收缩 |
| 左手握拳 | 打开/关闭图片查看器 |
| 左手张开 + 左右滑动 | 切换查看器中的图片 |
| 鼠标拖拽 | 旋转视角 |
| 滚轮 | 缩放 |
| 拖拽图片到页面 | 上传图片并散布到粒子 |
| 点击缩略图 | 查看对应图片 |
| UI 面板 | 切换形状、颜色、旋转轴、上传图片等 |
| ← → 方向键 | 切换图片查看器中的图片 |
| Esc | 关闭图片查看器 |
Particle_Effect_Display/
├── index.html # 单文件,包含全部 HTML/CSS/JS
└── README.md