还记得第 11 篇末尾,本猿留下的那句话吗?
这个系列还会继续往下挖——下一站,我们让这团烟也学会翻滚。
第 9 篇,我们把粒子塞进浮点纹理,让这台并行计算器学会了"炸一次";第 11 篇,我们把"死亡"重新定义成"候选",让同一台计算器学会了"烧不停"。
今天——
那团烟终于要冒出来了。🎉
大家好,我是 Cesium 酱(也可以叫我"本猿"),一名在 WebGIS 领域摸爬滚打多年的前端开发者。牛马不易,这阵子忙得脚不沾地,拖了这么久才把这篇交上来,先给各位赔个不是。
本文目标:从火焰那套GpuParticleSystem出发,只改三处地方——混合模式、配色表、三个力——让同一台 GPU 计算器吐出一柱会飘、会散、会淡的烟。💪
💡 本文涉及的全部代码均已开源,完整的仓库地址见文末,可自行取用、随意魔改。
一、痛点与场景:为什么"烟"不能照抄"火"
🎯 背景现状
烟雾是三维场景里最"戏份重"的配角之一:
- 🏭工业厂区:烟囱排放、冷却塔白汽,一眼看出这地方在干什么
- 🔥火灾现场:火看得见,烟飘得更远,是判断蔓延方向的第一线索
- 💥爆炸与事故:爆完剩下的那团尘烟,比火更持久、更好辨认