#include "textures.inc" #include "colors.inc" // The include files contain #include "stones.inc" // pre-defined scene elements #include "metals.inc" #include "woods.inc" #include "finish.inc" #include "shapes.inc" #include "skies.inc" #include "chars.inc" #include "stars.inc" #include "/home/ec2000/ra002808/mc930/coisas/robot666_v20.inc" camera { location < 5.5,3,6 > // Posição do observador. // location < 0,3800,40> //de cima //location <15,90,30> //de lado // location <-50,150,0> //outro lado //location <5,5,-35> //atras //location <5,-30,-5> //de baixo //right -1.0*x // Largura RELATIVA da imagem. //up 0.75*y // Altura RELATIVA da imagem. sky y // Qual direção é "para cima"? look_at <0, 2, 0 > // Para ond e a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source { 10 * < -50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < -50.0, -10.0, +10.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA sky_sphere { pigment {color rgb < 0.75, 0.80, 0.85 >} } //sky_sphere { pigment {checker color rgb < 0.3, 0.3, 0.3 > color rgb <0.7,0.7,0.7>} } background{ color rgb < 0.75, 0.80, 0.85 > } #declare sup_transp= texture{ finish { ambient 0.1 diffuse 0.1 roughness 0.001 reflection 0.25 specular 1 } pigment {color rgb <0.9,0.9,0.9> filter 1 } } //interior {ior 1.5} #declare sup_metalica = texture { finish{ ambient 0.05 diffuse 0.05 reflection color rgb <0.8,0.4,0.5> specular 0.20 roughness 0.05 } } #declare sup_metalica2 = texture { finish{ ambient 0.05 diffuse 0.05 reflection color rgb <0.8,0.8,0.7> specular 0.20 roughness 0.05 } } #declare chao= plane { <0,1,0>, -1 //pigment {checker color rgb < 0.3, 0.3, 0.3 > color rgb <0.7,0.7,0.7> scale 2} //rotate y*30 pigment {color <0.8,0.8,0.8>} } #declare cilext = union{ cylinder { <0,0,0> <0,3,0> 0.2 //pigment {color rgb <0.9,0.2,0.3>} //texture {sup_transp} //interior {ior 1.5} } sphere { <0,3,0> 0.3 //pigment {color rgb <0.9,0.2,0.3>} } texture {sup_transp} interior {ior 1.5} scale 0.4 } #declare cilint = union{ cylinder { <0,0,0> <0,3,0> 0.15 //pigment {color rgb <0.9,0.2,0.3>} //texture {sup_transp} //interior {ior 1.5} } sphere { <0,3,0> 0.25 //pigment {color rgb <0.9,0.2,0.3>} } texture {sup_transp} interior {ior 1.5} scale 0.4 } #declare cil= difference{ object {cilext} object {cilint} } #declare pacote = sphere{ <0,0,0> 0.2 scale 0.5 } #declare pacotes= union{ #declare R1 = seed (34567); #declare cont_int_1=0; #declare cont_int_2=0; #declare cont_ext=0; #declare dx=0.4; #declare dy=1.2; #declare posx_1=0; #declare posx_2=0; #declare posy=0; #while (cont_ext<4) #declare posy=posy+dy*cont_ext; #if ((cont_ext=0) | (cont_ext=2)) #while (cont_int_1<8) object {pacote pigment { rgb } translate } #declare posx_1=posx_1+dx; #declare cont_int_1=cont_int_1+1; #end #else #while (cont_int_2<4) object {pacote pigment { rgb } translate } #declare posx_2=posx_2+2*dx; #declare cont_int_2=cont_int_2+1; #end #end #declare cont_int_1=0; #declare cont_int_2=0; #declare cont_ext=cont_ext+1; #declare posy=0; #declare posx_1=0; #declare posx_2=0; #end } /*#declare pacotes2= union{ #declare R1 = seed (94557); #declare cont=0; #declare dx=0.4; #declare posx=0; #while (cont<8) object {pacote pigment { rgb } translate x*posx} #declare posx=posx+dx; #declare cont=cont+1; #end } */ #declare link= union{ //object {cil translate x*2} #declare cont=0; #declare dy=3*0.4; #declare posy=0; #while (cont<4) object {cil translate <2,posy,0>} #declare posy=posy+dy; #declare cont=cont+1; #end } #declare rede = union{ #declare cont=0; #declare dx=-1.2; #declare posx=2; #while (cont<4) object {link translate } #declare posx=posx+dx; #declare cont=cont+1; #end } /*#declare conta=0; #while (conta<40) #declare anty=anty+dy; #declare antz=antz+dz; object {degrau translate } #declare conta=conta+1; #end */ //object {link} //object {link translate x*-3} object {rede} object {rede rotate z*90 translate <4.0,-0.4,0>} object {pacotes rotate z*90 translate <4.0,1,0>} object {pacotes translate x*1} //object {pacotes2 translate y*2} object {chao}