Motion
Get Motion

ReferenceMaterial nodesPost Process

Rain on Glass

Drops running down a window: plug uv into a picture to see through them.

Post ProcessrainGlass

Inputs

PinTypeStarts atNotes
UVuvvec20–
Amountamountfloat0.6–
Speedspeedfloat0.3–

Outputs

PinType
UVuvvec2
Dropsdropsfloat

The code it becomes

What Studio writes for the graph below: a few lines of the material's shader, worked out for every pixel.

void mainImage(out vec4 fragColor, in vec2 fragCoord){    vec2 n1_uv = (vec2(fragCoord.x / iResolution.x, 1.0 - fragCoord.y / iResolution.y) * vec2(1.0, 1.0));    vec2 n1_centred = (vec2(fragCoord.x - 0.5 * iResolution.x, 0.5 * iResolution.y - fragCoord.y) / iResolution.y);    vec2 n1_square = (vec2(fragCoord.x, iResolution.y - fragCoord.y) / iResolution.y);    vec2 n2_uv = (n1_uv + vec2((fract((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))) - vec2(0.5, lib_hash(floor((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3)))))).x, -(fract((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))) - vec2(0.5, lib_hash(floor((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3)))))).y) * ((1.0 - smoothstep(0.05, 0.12, length(fract((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))) - vec2(0.5, lib_hash(floor((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))))) * vec2(1.0, 2.0)))) * step(1.0 - 0.6, lib_hash(floor((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))) + 1.3))) * 0.05);    float n2_drops = ((1.0 - smoothstep(0.05, 0.12, length(fract((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))) - vec2(0.5, lib_hash(floor((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))))) * vec2(1.0, 2.0)))) * step(1.0 - 0.6, lib_hash(floor((vec2((n1_uv).x, 1.0 - (n1_uv).y) * vec2(30.0, 8.0) + vec2(0.0, iTime * 0.3))) + 1.3)));    fragColor = vec4(vec3(n2_uv, 0.0), 1.0);}

In a graph

Texture coordinates into the node, and the node into the material, as Studio draws them.