效果图:
完整 代码与分析 如下:
#extension GL_OES_standard_derivatives:enable
//precision highp float;
uniform int u_frequency; // ❤ 小格子的个数 = (2*freq)^2, 大格子的个数 = freq^2
uniform vec4 u_color0; // 白色
uniform vec4 u_color1; // 黑色
varying vec2 v_st;
void
main()
{
vec4 color;
vec2 st_width;
vec2 fuzz;
vec2 pmod;
float fuzz_max;
st_width = fwidth(v_st);
fuzz = st_width * float(u_frequency) * 2.0;
fuzz_max = max(fuzz.s, fuzz.t);
pmod = fract(v_st * float(u_frequency)); // ❤ 创建大网格,每个格子的 pmod 都 ∈ [0, 1)
// 测试
//color = vec4(v_st * float(u_frequency), 0., 1.);
//color = vec4(pmo