// ====================================================================== // CÂMERA camera { /* location 5*< 35, 5, 3 > // Posição do observador.*/ location < 30*clock + 100, 50, 250 > // Posição do observador. /*location 10*<0,25,0>*/ 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 < 30*clock, 0.00, 0.00 > // Para onde 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, +35.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, 50.0, 50.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.5, 0.5, 0.5 > } #declare source=seed(2718281828); #declare chao = plane { <0,1,0>,-27 texture { pigment {checker color rgb <1,1,1>, color rgb <0.7,0.7,0.7>} } } #declare marrom = texture { pigment { color rgb < 0.4, 0.2, 0 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare preto = texture { pigment { color rgb < 0, 0, 0 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare marromtransp = texture { pigment { rgb <0.4,0.2,0> filter 1 } finish { diffuse 0.1 reflection 0.25 specular 0.7 roughness 0.001 } } #declare vermelho = texture { pigment { color rgb < 0.8, 0, 0 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } /*#declare alpha4 = 45; #declare alpha3 = 45; #declare alpha2 = 45; #declare alpha1 = 45; #declare theta1 = 15; */ #declare perna4 = union { cone { <0,0,0>,2 <10,0,0>,1.5 } sphere { <10,0,0>,1.5 } cone { <10,0,0>,1.5 <15,0,-5>,0 } } #macro perna3(alpha4) union { cylinder { <0,0,0>, <20,0,0>,2 } sphere { <20,0,0>,2 } object { perna4 rotate alpha4*y translate <20,0,0> } } #end #declare pelo = cone { <0,0,0>,1 <0,0,10>,0 } #macro perna2(alpha3,alpha4) union { cone { <0,0,0>,3 <40,0,0>,2 } #declare j=0; #while(j<6) object { pelo rotate 30*y translate <5+j*6,0,2> } #declare j=j+1; #end sphere { <40,0,0>,2 } object { perna3(alpha4) rotate alpha3*y translate <40,0,0> } } #end #macro perna1(alpha2,alpha3,alpha4) union { cone { <0,0,0>,4 <10,0,0>,3 } sphere { <10,0,0>,3 } object { perna2(alpha3,alpha4) rotate alpha2*y translate<10,0,0> } } #end #macro perna(x0,y0,z0,theta1,alpha1,alpha2,alpha3,alpha4) object { perna1(alpha2,alpha3,alpha4) rotate theta1*z rotate <0,alpha1,0> translate texture { preto } } #end #macro pernav(x0,y0,z0,theta1,alpha1,alpha2,alpha3,alpha4) object { perna1(alpha2,alpha3,alpha4) rotate theta1*z rotate <0,alpha1,180> translate texture { preto } } #end #declare olho = sphere { <0,0,0>,3 texture { vermelho } } #declare antena = cone { <0,0,0>,1 <70,0,0>,0 } #declare diametro=50; #declare distorcaox=4; #declare totalx=diametro*distorcaox; #declare casca = intersection { difference { sphere { <0,0,0>,(diametro/2)*1.01 } sphere {<0,-0.1,0>,(diametro/2)*1.01 } scale texture { marromtransp } interior { ior 1.5 } } union { box { <-4*diametro,-diametro/2,0.1> } box { <-4*diametro,-diametro/2,-0.1> } } } #declare corpo = union { sphere { <0,0,0>,diametro/2 scale } object { olho translate } object { olho translate } object { antena rotate 20*z translate (0.5*diametro/2)* } object { antena rotate 20*z translate (0.5*diametro/2)* } /* object { casca translate <0.1,0,0> }*/ texture { marrom } } #declare x0 = -totalx/2 + 0.1*totalx; #declare npernas = 5; #declare incx = 0.7*totalx/(npernas-1); #declare deltaa = 20; object { chao } union { object { corpo } //um lado da barata #declare i=0; #while(i < npernas) #if(mod(i,2) = 0) perna(x0+i*incx,-5,10,-10+-5*sin(4*pi*clock),-90+(deltaa/2)*sin(pi/2+4*pi*clock),0,-15+15*sin(2*pi*clock),-15) #else perna(x0+i*incx,-5,10,-10+-5*sin(pi + 4*pi*clock),-90+(deltaa/2)*sin(pi/2+ pi + 2*pi*clock),0,-15+15*sin(pi + 4*pi*clock),-15) #end #declare i=i+1; #end //outro lado da barata #declare i=0; #while(i < npernas) #if(mod(i,2) = 1) pernav(x0+i*incx,-5,-10,10+5*sin(4*pi*clock),90+(deltaa/2)*sin(4*pi*clock),0,-15+15*sin(pi/2+2*pi*clock),-15) #else pernav(x0+i*incx,-5,-10,10+5*sin(pi + 4*pi*clock),90+(deltaa/2)*sin(pi/2+ pi + 2*pi*clock),0,-15+15*sin(pi + 4*pi*clock),-15) #end #declare i=i+1; #end translate <30*clock,0,0> }