Quartz Composer Patch : Subdivision Tilings with Mask
/* Published by b-l-a-c-k-o-p.com
Copyright (c) 2007-2008
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
*/
SAMPLE: QameraSuperTiling.qtzSimilar to Subdivision Tiles, but with a mask image that is applied in source coordinate space.
kernel vec4 msBlackSuperTileMask(sampler input_image, sampler mask_image, float input_subdivisions)
{
float subdivisions = int(input_subdivisions/2.0);
vec2 image_size = samplerSize(input_image);
vec2 mask_size = samplerSize(mask_image);
vec2 box_size = floor(image_size/subdivisions);
vec2 pixel_coord = samplerCoord(input_image);
vec2 maxel_coord = samplerCoord(mask_image);
vec2 box_coord = mod(pixel_coord,box_size)*subdivisions;
vec2 normal_coord = mod(pixel_coord,box_size)/box_size;
vec2 mask_coord = normal_coord*mask_size;
vec4 pixel = sample(input_image, box_coord);
vec4 maxel = sample(mask_image, mask_coord);
pixel.a = clamp((maxel.x+maxel.y+maxel.z)/3.0,0.0,1.0);
return pixel;
}