/*{ "CATEGORIES": [ "Dissolve" ], "CREDIT": "Automatically converted from https://www.github.com/gl-transitions/gl-transitions/tree/master/crosshatch.glsl", "DESCRIPTION": "", "INPUTS": [ { "NAME": "startImage", "TYPE": "image" }, { "NAME": "endImage", "TYPE": "image" }, { "DEFAULT": 0, "MAX": 1, "MIN": 0, "NAME": "progress", "TYPE": "float" }, { "NAME": "fadeEdge", "TYPE": "float" }, { "DEFAULT": [ 0.5, 0.5 ], "MAX": [ 1, 1 ], "MIN": [ 0, 0 ], "NAME": "center", "TYPE": "point2D" }, { "DEFAULT": 3, "MAX": 10, "MIN": 0, "NAME": "threshold", "TYPE": "float" } ], "ISFVSN": "2", "VSN": "" } */ vec4 getFromColor(vec2 inUV) { return IMG_NORM_PIXEL(startImage, inUV); } vec4 getToColor(vec2 inUV) { return IMG_NORM_PIXEL(endImage, inUV); } // License: MIT // Author: pthrasher // adapted by gre from https://gist.github.com/pthrasher/04fd9a7de4012cbb03f6 float rand(vec2 co) { return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); } vec4 transition(vec2 p) { float dist = distance(center, p) / threshold; float r = progress - min(rand(vec2(p.y, 0.0)), rand(vec2(0.0, p.x))); return mix(getFromColor(p), getToColor(p), mix(0.0, mix(step(dist, r), 1.0, smoothstep(1.0-fadeEdge, 1.0, progress)), smoothstep(0.0, fadeEdge, progress))); } void main() { gl_FragColor = transition(isf_FragNormCoord.xy); }