GLSL 效果示例

液态转场:用噪声边界揭开第二幅图案

以两套程序图案作输入,边界弯曲推进,起点和终点都能完整显示。

在线示例

修改右侧代码,左侧预览会实时更新。

观察什么

以两套程序图案作输入,边界弯曲推进,起点和终点都能完整显示。

实现原理

噪声只扭曲两幅程序图案之间的遮罩边界。进度端点特别夹紧,保证可以完整显示任一输入。

找到控制效果的代码

float edge=uv.x+.22*(fbm(uv*7.+u_time*.1)-.5);float mask=u_parameter<=0.?0.:u_parameter>=1.?1.:1.-smoothstep(u_parameter-.02,u_parameter+.02,edge);vec3 a=palette(uv.x),b=vec3(.12,.8,.6)*(.6+.4*sin(uv.y*35.));c=mix(a,b,mask);

动手修改

把 edge 表达式中的噪声幅度 .22 改成 0.。液态边界会变成竖直擦除线;端点判断仍让参数为 0 时完整显示 a,为 1 时完整显示 b。

调试与成本

遮罩在混合两种程序化颜色前计算四层 fbm。把 u_parameter-.02、u_parameter+.02 的偏移都改为 .08,混合带会变宽,而 uv*7. 的噪声频率不变。

用到的内置函数

一步步学会这个效果