平滑带状遮罩
9 / 30
用 smoothstep() 创建一条平滑的水平亮带。
用 abs 测量到画布中线的距离,再用 smoothstep 把距离转成一条渐隐的亮带。
构造带状遮罩
先计算当前像素到画面垂直中心的距离:
- 中心(
vUv.y = 0.5):d = 0.0(最亮) - 边缘(
vUv.y = 0.0或1.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.05 到 d = 0.07 之间从 0 渐变到 1,加上 1.0 -,带中心为 1,外侧为 0。
调整 0.05 和 0.07 的数值可以改变带的宽度和边缘软硬度。两个值越接近,边缘越硬。