/* blurResample.pov 2010-2011 Samuel Benge Blur an image, resample it. */ // user variables #declare Input_Image = "img.png"; // a PNG image #declare Blur_Amount = 3; // amount in pixels #declare Interpolate_Image = 2; // 0, 2, 3, or 4 // ~user variables camera{ orthographic right x up y location -z*10 } #declare img= pigment{ image_map{ png Input_Image interpolate 2 once } warp{repeat x flip x} warp{repeat y flip y} translate-(x+y)/2 } #macro blur_pigment(pgmt, blur_amnt) average pigment_map{ #declare rad_n = 8; #declare ang_n = 6; [1 pgmt] #declare radius_var = 1; #while(radius_var < rad_n + 1) #declare rot_div = radius_var*ang_n; #declare angle_var = 0; #while(angle_var < rot_div) [1//-radius_var/(rad_n+1) pgmt translate< sin(pi*2/rot_div*angle_var)*radius_var/(rad_n+1), cos(pi*2/rot_div*angle_var)*radius_var/(rad_n+1), 0 >*blur_amnt ] #declare angle_var = angle_var + 1; #end #declare radius_var = radius_var + 1; #end } #end plane{z,0 pigment{ blur_pigment( img, Blur_Amount/ ) } finish{ambient 1} } // *******************************************************