Text to Image
// Japanese Scroll Shader - Black, Red, Grey
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = fragCoord.xy / iResolution.xy;
uv.y = 1.0 - uv.y; // flip Y for scroll feel
vec2 p = (uv - 0.5) * 2.0;
// Scroll-like vertical flow
float t = iTime * 0.2;
float flow = sin(p.y * 3.0 + t) * 0.2;
p.x += flow;
// Radial sumi ink distortion
float r = length(p);
float inkStroke = smoothstep(0.3, 0.05, abs(sin(p.y * 6.0 + t) * cos(p.x * 4.0 + t)));
// Ink wash gradient
float wash = smoothstep(0.8, 0.2, r + 0.1 * sin(p.y * 10.0 + t));
// Red circle "sun" motif
float sun = smoothstep(0.15, 0.12, length(p - vec2(0.0, 0.4)));
// Combine layers
vec3 greyInk = mix(vec3(1.0), vec3(0.1), wash * 0.8 + inkStroke * 0.9);
greyInk = mix(greyInk, vec3(1.0, 0.1, 0.1), sun); // Red sun
fragColor = vec4(greyInk, 1.0);
}