New FX.
This one is yet another slight variation on the theme of pixellation. In this permutation, the image ’tiles’ are moved around, either randomly, or based on the brightness of the pixel at the centre of each tile, yielding a surprisingly large range of glitchy effects.






Here’s the CI Filter code:
/*
Inputs:
sampler Image: input image
sampler DisplaceImg: displacement image
vec2 Tile: X and Y tile size. Range, image width/height > 1.0
float Threshold: threshold value for Displacement image R and G color value below which image tile is moved. Range 0.0 > 1.0
float Randomise: Mix of noise and original image as displacement value. Rangle 0.0 > 1.0
*/
kernel vec4 tb_slideTile(sampler Image, sampler DisplaceImg, vec2 Tile, float Threshold, float Randomise)
{
// Current pixel pos. in pixels
vec2 xy = samplerCoord(Image);
// Dimensions of input image
vec2 dims = samplerSize(Image);
// Normalised pix coords
vec2 normCoord = xy / dims;
// Centre-point of current tile
vec2 tileCenter = (floor(normCoord / Tile) * Tile) + (0.5 * Tile);
// Displacement image pixel at center of current tile
vec4 displacePix = mix(unpremultiply(sample(Image, tileCenter * dims)), sample(DisplaceImg, tileCenter * dims), Randomise);
// Position of current pixel in current tile
vec2 tilePos = normCoord - (tileCenter - (0.5 * Tile));
// Calculte sample position based on R and G values of displacePix
vec2 samplePos = vec2(displacePix.r,displacePix.g);
// Clamp coords so they remain in screen bounds
samplePos = clamp(samplePos,vec2(0.0,0.0), vec2(1.0,1.0) - Tile);
// Increment coords to draw tile content
samplePos += tilePos;
// Coordinates to sample original input image
samplePos = (displacePix.r < Threshold) ?
(displacePix.g < Threshold) ?
samplePos : normCoord
: normCoord;
// Denormalise sample coords
samplePos *= dims;
// Output
return sample(Image, samplePos);
}
some of those look really cool… still waiting on some upgrades to happen before i switch to leopard and then dive into Quartz learning finally… but your continued experiments and more abstract kinda FX keep me interested : ) keep it up ~! : )
Cheers!
I’m still just investigating the small snippets of code I’ve managed to work out. Variations on a theme, really, with the odd diversion
alx
I’m loving the glitch!
Cheers!
alx