平滑带状遮罩

9 / 30
用 smoothstep() 创建一条平滑的水平亮带。

abs 测量到画布中线的距离,再用 smoothstep 把距离转成一条渐隐的亮带。


构造带状遮罩

先计算当前像素到画面垂直中心的距离:

  • 中心(vUv.y = 0.5):d = 0.0(最亮)
  • 边缘(vUv.y = 0.01.0):d = 0.5(最暗)

再用 smoothstep 把距离转成遮罩:

d < 0.05 时遮罩为 1(亮带中心),d > 0.07 时遮罩为 0(背景),中间平滑过渡。


练习

练习代码里 band = 0.0(全背景色)。用 1.0 - smoothstep(0.05, 0.07, d) 计算遮罩,让画面中央出现一条水平亮带。

答案解析

abs(vUv.y - 0.5) 把 y 轴的「距中心的距离」折叠到 0~0.5。越靠近中心,d 越小。

smoothstep(0.05, 0.07, d)d = 0.05d = 0.07 之间从 0 渐变到 1,加上 1.0 -,带中心为 1,外侧为 0。

调整 0.050.07 的数值可以改变带的宽度和边缘软硬度。两个值越接近,边缘越硬。

GLSL 代码编辑器

正确代码预览

当前代码预览