本案例展示如何使用 smoothstep() 取代 step(),实现更自然柔和的图形边缘效果,是 UI 渲染与特效中常用技巧。
---
smoothstep(edge0, edge1, x)比 step() 更平滑的插值函数:
`glsl
float result = smoothstep(0.3, 0.5, dist);
`
- x <= edge0 时返回 0
- x >= edge1 时返回 1
- 中间部分平滑过渡(非跳变)
---
`glsl
float dist = distance(vUv, vec2(0.5));
float mask = smoothstep(0.3, 0.5, dist);
`
我们创建一个以中心为圆心、半径为 0.3~0.5 的渐变边缘区域。
---
`glsl
vec3 color = mix(亮色, 背景色, mask);
`
当 mask 接近 0,显示亮色;mask 趋近 1 时,逐渐变为背景色,实现柔和过渡。