网格线
6 / 30
使用 fract() 与 step() 绘制网格线。
条纹是在一个方向上重复。网格线是同时在两个方向重复,并在每段边界附近显示线条。
构造网格坐标
fract(vUv * 10.0) 把画面分成 10×10 的格子,每格内 g 从 0~1 重新开始。
在边界处绘制线条
每格内,g.x 接近 1.0 时意味着靠近右边界。用 step 检测:
step(0.95, g.x)= 1 当g.x > 0.95(靠近右边界)- 加上 y 方向的检测,两者取
min(line, 1.0)防止超过 1
练习
练习代码里 line = 0.0(全背景色)。用 step(1.0 - lw, g.x) + step(1.0 - lw, g.y) 计算线条遮罩,再用 min 限制范围。
答案解析
x 方向和 y 方向各产生一条线,用 + 叠加后最大值为 2(两边界交叉处),min(line, 1.0) 把它压回 1。
调整 lw = 0.02 可以让线条更细,改变 density 可以控制格子数量。