Three.js 粒子系统与渲染机制教程
本教程基于示例目录内的 Three.js r174(0.174.0)。先用 WebGLRenderer 和 Three.js 原生 API 理解混合、深度、遮挡,再逐步实现粒子的生命周期、CPU/GPU 路线和具体效果。第三方库放在系列末尾,并以兼容 r174 的版本讲解。
阅读与运行
- 按编号阅读根目录中的章节正文,并打开相应的可运行示例。
- 调节示例参数,先观察现象,再回到正文理解原因。
- 在
exercises/做对应章节的独立练习;参考答案放在练习文件末尾,不混入正文。
从 particle-system/ 目录执行:
cd examples
python -m http.server 8000
然后打开 阶段 00 最小示例:http://localhost:8000/stage-00/。页面使用同目录的 three.module.js 和 three.core.min.js,不依赖仓库根目录的构建文件。不要直接通过 file:// 打开。若端口 8000 已被占用,可换端口并修改地址中的端口号。
当前进度
阶段 00—09、正文第 01—20 章已完成。 教程正文与独立练习分开,章节、答案、示例及排错附录可从下方进入。
| 内容 | 入口 | 作用 |
|---|---|---|
| 阶段计划 | PLAN.md | 01—20 章的编写阶段、交付物和技术边界 |
| 写作约定 | WRITING-GUIDE.md | 正文、练习、答案与示例的共同标准 |
| 最小示例 | 示例说明 · 运行页面 | 确认本地服务器、模块导入和 WebGL 渲染正常 |
| 练习区 | exercises/README.md | 练习与参考答案的组织方式 |
第一部分:颜色、混合与透明纹理
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 01 从片元到最终像素 | 练习与答案 | 像素路径 |
| 02 混合模式是什么,如何选择 | 练习与答案 | 四种混合模式 |
| 03 透明纹理、黑边与颜色空间 | 练习与答案 | 贴图边缘对照 |
阶段 01 示例说明与入口列出了每个页面的预期画面和关键控件。
第二部分:深度与绘制顺序
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 04 深度测试:谁能占据这个像素 | 练习与答案 | 墙与光斑 |
| 05 深度写入:透明烟片为何相互硬裁 | 练习与答案 | 重叠烟片 |
| 06 颜色写入与绘制顺序 | 练习与答案 | 不可见遮挡体与叠色 |
阶段 02 示例说明与入口列出预期画面、参数和源码位置。
第三部分:透明排序与遮挡剔除
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 07 透明对象排序 | 练习与答案 | 相交烟幕 |
| 08 物体遮挡与遮挡剔除 | 练习与答案 | 墙后粒子 |
阶段 03 示例说明与入口列出两页的预期画面、参数和源码位置。
粒子模型与生命周期(阶段 04)
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 09 粒子系统:发射器与粒子个体 | 练习与答案 | 持续火焰 |
| 10 生命周期与属性曲线 | 练习与答案 | 一次性爆炸 |
阶段 04 示例说明与入口列出预期画面、控件与源码位置。
时间、池化与数学(阶段 05)
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 11 时间、发射率与粒子池 | 练习与答案 | 更新频率与槽位复用 |
| 12 随机分布与运动积分 | 练习与答案 | 圆盘采样 · 喷泉、雨、爆炸 |
阶段 05 示例说明与入口列出三页的预期画面与源码位置。
原生 CPU 路线(阶段 06)
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
13 THREE.Points 基础 |
练习与答案 | Points 星空 |
| 14 Billboard 与纹理图集 | 练习与答案 | 平面与 Sprite |
| 15 动态 BufferGeometry | 练习与答案 | 雪与烟 |
阶段 06 示例说明与入口列出三页的预期画面、控件与运行方式。
GPU 与软粒子(阶段 07)
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 16 GPU 解析式粒子 | 练习与答案 | GPU 星尘 |
| 17 基于场景深度的软粒子 | 练习与答案 | 烟雾硬边与软边 |
阶段 07 示例说明与入口列出两页的预期画面、源码与验收条件。
特效与群体(阶段 08)
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 18 七种粒子特效配方 | 练习与答案 | 烟、火、雨、雪、爆炸、星光、魔法 |
| 19 鸟群与人群:邻居行为 | 练习与答案 | 鸟群与独立运动 |
阶段 08 示例说明与入口列出两页的运行方式、控制项和验收条件。
性能与第三方库(阶段 09)
| 教程正文 | 独立练习 | 可运行示例 |
|---|---|---|
| 20 性能诊断与 three.quarks | 练习与答案 | 性能实验 · 原生与库火焰 |
阶段 09 示例说明与入口记录版本、运行方式与浏览器验收;排错附录 A按画面、深度、更新和性能症状定位问题。
全系列阅读路线
| 部分 | 章节 | 主题 |
|---|---|---|
| 一 | 01—03 | 像素生成、混合模式、透明纹理 |
| 二 | 04—08 | 深度测试、深度写入、颜色写入、排序与遮挡剔除 |
| 三 | 09—17 | 粒子模型、生命周期、池化、运动、Points、Billboard、GPU 与软粒子 |
| 四 | 18—20 | 特效配方、群体行为、性能与第三方库 |
分阶段编写计划记录了各阶段的交付范围。所有示例以本仓库 r174 为技术基线;第 20 章额外固定了兼容版本的第三方库。