21 lines
566 B
Plaintext
21 lines
566 B
Plaintext
shader_type canvas_item;
|
|
|
|
uniform vec2 origin;
|
|
uniform vec4 tint = vec4(0.0);
|
|
uniform vec2 tile_size = vec2(16.0);
|
|
uniform float lock_to_global = 1.0;
|
|
|
|
varying vec2 world_vertex;
|
|
|
|
void vertex() {
|
|
world_vertex = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy - origin;
|
|
world_vertex = mix(VERTEX, world_vertex, lock_to_global);
|
|
}
|
|
|
|
void fragment() {
|
|
vec2 coor = mod(world_vertex, tile_size * 2.0);
|
|
vec2 checker = step(coor, tile_size);
|
|
COLOR.rgb = mix(vec3(mix(1.0 - checker.x, checker.x, checker.y)) * 0.2 + 0.5, tint.rgb, tint.a);
|
|
COLOR.a = max(COLOR.a, tint.a);
|
|
}
|