Inkwash:一个水彩速写应用及其原理详解
文章摘要
Inkwash 是一个「装在单个 HTML 文件里的水彩模拟器」,在浏览器里重现了用钢笔配合水笔速写的体验。它由艺术家 Johno Whitaker 与 Claude Fable 5 协作完成:用户先用钢笔勾线,再用蘸水的笔触晕染,墨线会以真实的方式扩散、晕开边缘,并产生水彩特有的色彩分离效果。
技术上,模拟器维护了多张浮点纹理「画纸」,分别追踪不同属性:墨水场(用 RGB 表示光学密度即吸收率,而非颜色)、固着层(已沉淀并与纸张结合的颜料)、湿度场、速度网格(约 256 格的粗粒度水流层)以及用于不可压缩计算的压力场。流体部分采用了 Jos Stam 的 Stable Fluids 算法(半拉格朗日平流,反向移动流体以保证稳定),再加上压力投影和涡度增强来维持画面的活力。湿度纹理则像一个「许可系统」,控制着整套模拟:只有湿润的纸面才存在流速,颜料的流动性随湿度增加,水分随时间指数级蒸发。
最具特色的是「色谱分离」效果:黑墨中不同染料在遇水时移动速度不同,着色器按通道以不同速率扩散,自然分离出「深色核心加冷色光晕」,无需特效,纯靠物理。最终成像用比尔–朗伯定律模拟光线穿过颜料的指数衰减,让笔触叠加处自然加深,避免了普通 alpha 混合产生的死黑。整个应用是一个无外部依赖的自包含 HTML 文件,却能在手机上跑出 60 fps,即便每帧要执行十二个着色器通道。
HN 评论精华
- vunderba:推荐了水彩/绘画软件 Rebelle,并提到它有在线 demo 可以体验笔刷效果。
- cam_l:分享自己曾用过 Expresii,称其绘画手感自然,是一款「被低估」的软件。
- armcat:作为业余水彩爱好者,称赞晕染效果很漂亮,但指出真正的水彩依赖不可预测性、纸张纹理和落笔的果断,这些数字化很难复刻。
- BugsJustFindMe:批评模拟中出现的「小尺度漩涡」看起来不真实,与纸上真实水彩的行为不符。
- NoMoreNicksLeft:认为艺术不必追求绝对真实,这个工具反而可以实现物理媒介做不到的功能,比如可调节的流场。
- calebm:盛赞这是单文件 Web 应用的优秀范例,并提到有人在为这一概念整理 Wikipedia 词条。
- Yenrabbit(作者):回应移动端体验反馈,已修复控制面板,使其在小屏手机上自动隐藏。