操作说明与实现边界
- 交互:鼠标或手指在画布上拖动,向速度场注入动量、向染料场注入颜色;多点触摸同时生效。
- 求解:每帧执行平流(半拉格朗日)、涡度约束、散度计算、压力雅可比迭代与梯度投影,是真实的不可压缩流求解,不是粒子轨迹或渐隐画布特效。
- 参数:注入力度改变动量与染料注入量;染料消散控制颜色衰减速度;压力迭代次数影响不可压缩精度;模拟分辨率切换速度场网格;卷曲为涡度约束强度。
- 运行:暂停后流场停止演化(暂停期间的拖动不注入);清空移除全部染料与速度;重置参数恢复默认控件值;PNG 截图下载当前画面。
- 资源:设备像素比上限 2,模拟与染料分辨率按设备能力封顶;重建帧缓冲时释放旧纹理与 FBO;窗口尺寸变化后重建并复制场数据,触摸坐标按新尺寸换算。
- 兼容:优先 WebGL2 半浮点渲染格式,回退 WebGL1 + 半浮点扩展;若上下文或所需纹理格式不可用,给出明确文字提示而不是空白页。