棋盘格图案
13 / 15
📝 练习目标
结合 mod() 函数与 floor(),生成黑白相间的棋盘格纹理。
💡 💡 教程内容
结合 mod() 函数与 floor(),生成黑白相间的棋盘格纹理。
概览
- 使用 UV 作为因子实现水平渐变。
学习目标
- 理解
floor()函数如何取整以及mod()函数如何取模。 - 学习如何通过缩放UV坐标来控制棋盘格的大小。
- 掌握将
floor(uv.x) + floor(uv.y)的结果通过mod(sum, 2.0)来区分不同方块的逻辑。 - 能够生成自定义颜色和大小的棋盘格图案。
前置知识
- uv-coordinates
- step-function-mask
关键概念
- 水平渐变使用 0-1 因子(通常来自 UV)来混合颜色。
float t = vUv.x;
vec3 color = vec3(t);
- 把因子限制在
[0,1]。
t = clamp(t, 0.0, 1.0);
如何实现(步骤)
- 将 vUv 扩展为 8x8 网格
- 使用 floor() 计算每个单元格编号
- 使用 mod() 生成黑白交替模式
- 使用 mix() 混合颜色输出
自检
- 是否能无错误编译?
- 输出是否符合目标?
- 关键数值是否在
[0,1]?
常见坑
- 必要时把
t用 clamp 限制到[0,1]。