GLSL 效果示例
平滑并集:让两个液滴靠近时黏在一起
与硬并集并排展示,调节融合宽度能看到连接处的差别。
在线示例
修改右侧代码,左侧预览会实时更新。
观察什么
与硬并集并排展示,调节融合宽度能看到连接处的差别。
实现原理
左半屏使用硬并集,右半屏使用平滑并集。融合宽度控制连接颈部,而不是简单模糊最终颜色。
找到控制效果的代码
float a=length(p-vec2(-.3,.1*sin(u_time)))-.28,b=length(p-vec2(.3,-.1*sin(u_time)))-.28;float d=p.x<0.?min(a,b):smoothUnion(a,b,.05+.55*u_parameter);c=mix(c,vec3(.2,.8,.95),1.-smoothstep(-aa,aa,d));
动手修改
把平滑并集宽度 .05+.55*u_parameter 先设为 .1,再设为 .5。较大值会使右侧液滴间的连接颈变宽,左侧硬并集保持不变。
调试与成本
两个圆的距离先合并,再做一次抗锯齿颜色混合,因此这里混合的是几何场。把 smoothUnion(a,b,.05+.55*u_parameter) 换成 min(a,b),两半都会使用硬边界,平滑连接也会消失。