/*{ "CATEGORIES": [ "Dissolve" ], "CREDIT": "Automatically converted from https://www.github.com/gl-transitions/gl-transitions/tree/master/fadegrayscale.glsl", "DESCRIPTION": "", "INPUTS": [ { "NAME": "startImage", "TYPE": "image" }, { "NAME": "endImage", "TYPE": "image" }, { "DEFAULT": 0, "MAX": 1, "MIN": 0, "NAME": "progress", "TYPE": "float" }, { "DEFAULT": 0.3, "MAX": 1, "MIN": 0, "NAME": "intensity", "TYPE": "float" } ], "ISFVSN": "2" } */ vec4 getFromColor(vec2 inUV) { return IMG_NORM_PIXEL(startImage, inUV); } vec4 getToColor(vec2 inUV) { return IMG_NORM_PIXEL(endImage, inUV); } // Author: gre // License: MIT vec3 grayscale (vec3 color) { return vec3(0.2126*color.r + 0.7152*color.g + 0.0722*color.b); } vec4 transition (vec2 uv) { vec4 fc = getFromColor(uv); vec4 tc = getToColor(uv); return mix( mix(vec4(grayscale(fc.rgb), 1.0), fc, smoothstep(1.0-intensity, 0.0, progress)), mix(vec4(grayscale(tc.rgb), 1.0), tc, smoothstep( intensity, 1.0, progress)), progress); } void main() { gl_FragColor = transition(isf_FragNormCoord.xy); }