shader_type spatial; uniform vec2 dims; uniform vec3 light_color : source_color; uniform vec3 dark_color : source_color; // uniform float line_width : hint_range(0.0, 0.1, 0.001); uniform sampler2D NOISE_PATTERN; uniform float noise_strength : hint_range(0, 1.0, 0.01); vec3 albedo(vec2 pos) { vec2 noise_pos = pos*vec2(textureSize(NOISE_PATTERN,1))/dims; vec3 noise = noise_strength*(texture(NOISE_PATTERN, noise_pos).rgb - vec3(0.5)); if (round(mod(pos.x/2.0+noise.r, 1.0)) == round(mod(pos.y/2.0+noise.g, 1.0))) { return dark_color; } else { return light_color; } } void fragment() { vec2 p = UV*dims; ALBEDO = (albedo(p-vec2(0.01, 0.0))+albedo(p+vec2(0.01,0.0))+albedo(p-vec2(0.0, 0.01))+albedo(p+vec2(0.0,0.01)))/4.0; }