彩色流体实验台
WebGL 实时求解二维速度场与染料场:平流 → 散度 → 压力迭代 → 速度投影
染料颜色
注入力度
55
染料消散
0.8
压力迭代
22
模拟分辨率
128(低)
256(中)
384(高)
512(极高)
暂停
清空
重置参数
PNG 截图
提示:在画面上拖动鼠标或手指即可注入染料与动量
运行中
模拟状态
—
速度场分辨率
—
压力迭代次数
—
帧率
—
纹理格式
操作说明与实现要点
拖动:注入染料颜色与沿拖动方向的动量,方向改变会直接改变流动方向。
“注入力度”控制喷射动量,“染料消散”控制颜色衰减快慢,“压力迭代”控制不可压缩投影的精度(次数越多散度越小)。
“模拟分辨率”会重建速度场与染料场缓冲,并同步释放旧的 GPU 资源。
“暂停”冻结模拟推进但保留当前画面;“清空”移除已有流体内容;“重置参数”恢复默认值并重建模拟。
“PNG 截图”导出当前画面;窗口或容器尺寸改变后,模拟继续、拖动坐标按新尺寸换算。
实现为真实流体求解:半拉格朗日平流、涡度约束、散度计算、Jacobi 压力迭代与梯度减法投影,不是粒子轨迹或渐隐画布。
需要 WebGL2 与浮点渲染目标支持;不满足时页面会显示明确提示而不是空白画布。