// -------------------------------------------------------------------------- #version 3.8; // -------------------------------------------------------------------------- // --- INCLUDES ------------------------------------------------------------- // -------------------------------------------------------------------------- #include "colors.inc" #include "functions.inc" //#include "myMacros.inc" // //#declare displayAxis = true; // // -------------------------------------------------------------------------- // --- SCENE ---------------------------------------------------------------- // -------------------------------------------------------------------------- global_settings { assumed_gamma 1.80 max_trace_level 10 } camera { location <-2, 8, -3>*2.5 look_at <4,0,3> angle 36 } light_source { <0, 100, 0> color White } background { color White*0.5 } //#if (displayAxis) // drawAxis (14, 0.08) //#end // -------------------------------------------------------------------------- // --- OBJECT --------------------------------------------------------------- // -------------------------------------------------------------------------- #declare imageWidth = 4; #declare imageHeight = 3; // Image from Jaime Vives Piqueres, HOF : https://hof.povray.org/ChristmasBaubles.html #declare ImageName ="ChristmasBaubles"; #declare myPigment = pigment { image_map { png ImageName map_type 0 once interpolate 2 } scale < imageWidth, imageHeight , 1> } #declare steep = 0.01; // 0.005; // various... #declare side = steep*0.85 ; // 0.02; #declare xIndex=0; #declare myColor = rgb <0.00, 0.00, 0.00>; // ----------------------------------------------------------------------------- #macro eval_color(pigm, vec) #local fn = function { pigment { pigm } } fn(vec.red, vec.green, vec.blue) #end // ----------------------------------------------------------------------------- #declare xDim = imageWidth/steep; #declare yDim = imageHeight/steep; #declare Image = array[xDim][yDim]; // ----------------------------------------------------------------------------- #declare yIndex=0; #declare yIndice=0; #while(yIndex<(imageHeight-steep)) #declare xIndex=0; #declare xIndice=0; #while (xIndex<(imageWidth-steep)) #declare myColor = eval_color(myPigment, ); box { <(2*xIndex)-side, 0, (2*yIndex)-side>, <(2*xIndex)+side, myColor.gray, (2*yIndex)+side> pigment { color myColor } } #declare Image[xIndice][yIndice] = myColor; #declare xIndice = xIndice + 1; #declare xIndex=xIndex+steep; #end #declare yIndice = yIndice + 1; #declare yIndex=yIndex+steep; #end