/* 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: QameraLotsOfHearts.qtzThis kernel applies the mask_image ala msBlackMergeAlphaFromGrey and then tiles the image to
input_subdivisions.
kernel vec4 msBlackSuperTileMask(sampler input_image, sampler mask_image, float input_subdivisions)
{
float subdivisions = (input_subdivisions);
/* float subdivisions = int(input_subdivisions); */ // for discrete subdivisions
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;
}