目 录CONTENT

文章目录

一个基于 WebGL (Three.js) 和计算机视觉 (MediaPipe) 的交互式 3D 圣诞树体验

Administrator
2025-12-16 / 0 评论 / 0 点赞 / 22 阅读 / 0 字

Magic Christmas Tree 🎄✨

(Vita0519/ChristmasTree)[https://github.com/Vita0519/ChristmasTree/edit/main/README.md]

一个基于 WebGL (Three.js) 和计算机视觉 (MediaPipe) 的交互式 3D 圣诞树体验。

✨ 特性 (Features)

  • 沉浸式 3D 视觉: 使用 Three.js 构建的粒子系统,包含金球、银块、红蓝宝石和辉光效果 (Bloom)。

  • AI 手势识别: 集成 Google MediaPipe,无需任何穿戴设备,通过摄像头即可控制。

  • 物理交互:

    ✊ *握拳 (Fist)**: 将星云粒子聚合成一棵旋转的圣诞树。

    🖐 *张手 (Open Palm)**: 粒子炸开成宇宙星云状态。

    👋 *挥动 (Wave)**: 在星云状态下,像拨动地球仪一样旋转视角(带有物理惯性)。

    👌 *捏合 (Pinch)**: 智能抓取并放大查看上传的照片。

  • 回忆画廊: 支持上传本地照片,照片会自动挂载在树上或漂浮在星云中。

🚀 快速开始 (How to Run)

方法 1: fork这个项目(推荐)

开启 Pages: 进入仓库 Settings -> 左侧 Pages -> 在 Branch 处选择 main (或 master) -> 点击 Save。

访问: 等待几分钟,访问 https://你的用户名.github.io/仓库名/。

image

方法 2: 直接本地双击html文件打开

🛠️ 技术栈 (Tech Stack)

  • Three.js (r160): 核心 3D 渲染引擎。

  • Three.js Post-processing: 用于实现辉光 (Bloom) 和色调映射 (Tone Mapping)。

  • MediaPipe Hand Landmarker: 实时手部骨骼检测。

  • HTML5/CSS3: 响应式布局与 UI 界面。

⚙️ 配置 (Configuration)

在代码顶部的 CONFIG 对象中可以调整视觉参数:


JavaScript

const CONFIG = {

    goldCount: 500,     // 金球数量

    bloomStrength: 0.7, // 辉光强度

    treeHeight: 75,     // 树的高度

    // ...

}; 

📝 注意事项

  • 摄像头权限: 首次打开时浏览器会请求摄像头权限,请点击“允许”。

  • 性能: 建议在带有独立显卡的 PC 或高性能手机上运行。代码已针对性能进行了优化(如手势检测节流),但在老旧设备上可能会有卡顿。

尝试解决办法:开启浏览器图形加速后重启浏览器,再打开

image
  • 环境光: 请确保您所处的环境光线充足,以便摄像头能准确识别手势。

Merry Christmas! 🎁

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区