网格线

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 可以控制格子数量。

GLSL 代码编辑器

正确代码预览

当前代码预览