// Persistence of Vision Ray Tracer Scene Description File // File: ?.pov // Vers: 3.6 // Desc: Orthographic Scene Example // useful for generating image_maps, heightfields, etc. // Date: mm/dd/yy // Auth: ? // #version 3.6; global_settings { //assumed_gamma 1.0 } #declare jj=array[9]{-0.6,207,118,292,30,60,22,-31,0}; #declare kk=array[9]{0.8,0.54,0.41,0.35,1,1,0.61,0.88,0}; #declare ll=array[9]{0.5,0.47,0.49,0.47,0.5,0.6,0.4,0.74,0.6}; #declare pjj=array[9]{5,207,109,286,35,60,41,-31,0}; #declare pkk=array[9]{0.91,0.46,0.49,0.32,0.98,1,0.44,0.98,0}; #declare pll=array[9]{0.83,0.8,0.85,0.85,0.82,0.9,0.82,0.92,0.95}; #include "colors.inc" background{ Black//Gray10 } // ---------------------------------------- camera { orthographic location <2.5,0,-10> // position & direction of view look_at <2.5,0,0> right 20*x // horizontal size of view \___ to be rendered at square size up 15*y // vertical size of view / } #default{finish{ambient 1.0 diffuse 0.0 }} #declare zoom=4; #declare num=39; #declare spot=array[num]; #local i=0; #while(i; #local i=i+1; #end #declare spot[0]=rgb<1,0,0>; #declare spot[2]=rgb<0,1,0>; #declare spot[4]=rgb<0,0,1>; #declare spot[7]=rgb<1,1,0>; #declare spot[9]=rgb<1,0,1>; #declare spot[11]=rgb<0,1,1>; // perform interpolation of 3 colours #macro add3(a,b,c) #local jj=vaxis_rotate(x,z,a.x)+vaxis_rotate(x,z,b.x)+vaxis_rotate(x,z,c.x) ; #if (vlength(jj)) #local kk=rgb ; #else #local kk=rgb<0,0,(a.z+b.z+c.z)/3> ; #end kk #end // perform interpolation of 2 colours #macro add2(a,b) #local jj=vaxis_rotate(a.y*x,z,a.x)+vaxis_rotate(b.y*x,z,b.x) ; #if (vlength(jj)) #local kk=rgb ; #else #local kk=rgb<0,0,(a.z+b.z)/2> ; #end kk #end // Process mix in hsl space #macro process_hsl(spot) #local i=0; #while (i rotate (90+60*i)*z} #local i=i+1; #end disc{0,z,0.2,0.05 texture{pigment { color spot[i]}} } #local i=i+1; #while (i<13) disc{0,z,0.25 #if (mod(i,2)=0) ,0.05 #end texture{pigment { color spot[i]}} translate <0.5+0.5*mod(i,2),0,0> rotate (-30+60*i)*z translate <1.75,0.5,0>} #local i=i+1; #end disc{0,z,0.2,0.05 texture{pigment { color spot[i]}}translate <1.75,0.5,0> } #local i=i+1; #while(i<21) disc{0,z,0.25 #if (mod(i,2)=1) ,0.05 #end texture{pigment { color spot[i]}}translate <-2+(i-12)*0.6,0.75-2,0> } #local i=i+1; #end #while(i<24) disc{0,z,0.25,0.05 texture{pigment { color spot[i]}}translate <-2+(i-20)*1.2,0.625-2.5,0> } #local i=i+1; #end #while(i<31) disc{0,z,0.25 #if (mod(i,2)=1) ,0.05 #end texture{pigment { color spot[i]}}translate <-2+(i-22)*0.6,-2.5,0> } #local i=i+1; #end #while (i<34) disc{0,z,0.2,0.05 texture{pigment { color spot[i]}} translate <0.425,0,0> rotate (90+120*i)*z} #local i=i+1; #end #while (i<37) disc{0,z,0.2,0.05 texture{pigment { color spot[i]}} translate <0.425,0,0> rotate (30+120*i)*z translate <1.75,0.5,0>} #local i=i+1; #end disc{0,z,0.175,0.05 texture{pigment { color spot[i]}} translate <1,0,0> rotate (120*i)*z } #local i=i+1; disc{0,z,0.175,0.05 texture{pigment { color spot[i]}} translate <1,0,0> rotate (60+120*i)*z translate <1.75,0.5,0>} translate } #end process_rgb(spot) show(spot,-6,6) process_hsl(spot) show(spot,-6,1) process_hsv(spot) show(spot,-6,-4) #declare spot[0]=rgb<1,0.5,0.5>; #declare spot[2]=rgb<0.5,1,0.5>; #declare spot[4]=rgb<0.5,0.5,1>; #declare spot[7]=rgb<1,1,0.5>; #declare spot[9]=rgb<1,0.5,1>; #declare spot[11]=rgb<0.5,1,1>; process_rgb(spot) show(spot,-1,6) process_hsl(spot) show(spot,-1,1) process_hsv(spot) show(spot,-1,-4) #declare spot[0]=rgb<0.5,0,0>; #declare spot[2]=rgb<0,0.5,0>; #declare spot[4]=rgb<0,0,0.5>; #declare spot[7]=rgb<0.5,0.5,0>; #declare spot[9]=rgb<0.5,0,0.5>; #declare spot[11]=rgb<0,0.5,0.5>; process_rgb(spot) show(spot,4,6) process_hsl(spot) show(spot,4,1) process_hsv(spot) show(spot,4,-4) #declare spot[2]=rgb<0,0.5,0>; #declare spot[4]=rgb<0.5,1,0.5>; #declare spot[0]=rgb<0,1,0>; #declare spot[7]=rgb<0,0.5,0.5>; #declare spot[9]=rgb<0.5,1,1>; #declare spot[11]=rgb<0,1,1>; process_rgb(spot) show(spot,9,6) process_hsl(spot) show(spot,9,1) process_hsv(spot) show(spot,9,-4)