你将掌握如何使用 floor()
和 mod()
结合生成棋盘格图案,理解 UV 空间与离散网格的关系。
---
为了生成规律图案,我们先将 vUv
映射为 8×8 网格:
`
glsl
float x = floor(vUv.x * 8.0);
float y = floor(vUv.y * 8.0);
`
floor()
将浮点值向下取整,得到每个格子的行列编号。
---
我们希望让相邻格子颜色不同:
`
glsl
float pattern = mod(x + y, 2.0);
`
- 当 (x + y)
为偶数 → 结果为 0 → 白色
- 为奇数 → 结果为 1 → 黑色
---
根据 pattern 值切换颜色:
`
glsl
vec3 color = mix(vec3(1.0), vec3(0.0), pattern);
`
生成一个交错排列的棋盘格纹理。