trench/shaders/brick.gdshader
saarsena@gmail.com c2bb3893a9 initial commit
2026-04-22 10:19:57 -04:00

35 lines
No EOL
823 B
Text

shader_type spatial;
vec4 brickTile(vec2 _st, float _zoom, float _time){
_st *= _zoom;
float time = _time * 50.0;
if (fract( _st.y * 0.5) > 0.5){
_st.x += fract(time);
} else {
_st.x -= fract(time);
return vec4(fract(_st), floor(_st));
}
}
float box(vec2 _st, vec2 _size){
_size = vec2(0.5) - _size * 0.5;
vec2 uv = smoothstep(_size, _size + vec2(1e-4), _st);
uv *= smoothstep(_size, _size + vec2(1e-4), vec2(1.0) - _st);
return uv.x * uv.y;
}
float hash(vec2 p){
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);
}
void fragment() {
vec4 tile = brickTile(UV, 10.0, TIME);
vec2 st = tile.xy;
vec2 id = tile.zw;
vec3 brickColor = vec3(0.1, 0.1, 0.3);
float mask = box(st, vec2(0.2));
ALBEDO = brickColor * mask;
}