revo-jailbreak/shaders/ska_plane.gdshader

25 lines
No EOL
754 B
Text

shader_type canvas_item;
render_mode skip_vertex_transform;
uniform vec4 color_1 : hint_color = vec4(1.0, 1.0, 1.0, 1.0);
uniform vec4 color_2 : hint_color = vec4(0.0, 0.0, 0.0, 1.0);
uniform vec2 checker_size = vec2(8.0, 8.0);
uniform vec2 cycle_speed = vec2(0.0, 0.0);
uniform vec2 pan_speed = vec2(0.0, 0.0);
uniform mat2 uv_transform = mat2(1.0);
float checker(vec2 uv) {
vec2 div_uv = floor((uv) / checker_size);
float fmodResult = mod(div_uv.x + div_uv.y, 2.0);
return max(sign(fmodResult), 0.0);
}
void vertex() {
UV = VERTEX;
VERTEX = (WORLD_MATRIX * (EXTRA_MATRIX * vec4(VERTEX, 0.0, 1.0))).xy;
}
void fragment() {
vec2 uv = uv_transform * (UV - pan_speed * TIME) - cycle_speed * TIME;
COLOR = mix(color_1, color_2, checker(uv));
}