//ALUNO: Pedro Henrique Machado Martins camera{ location < 4.00, 6.00, 3.00 > // Posi��o do observador. right -1.2*x // Largura RELATIVA da imagem. up 0.9*y // Altura RELATIVA da imagem. sky z // Qual dire��o � "para cima"? look_at < -2, 0, 0 > // 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, +30.0, +50.0 > // Posi��o da l�mpada. color rgb 1.0 * < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } light_source{ 10 * < +50.0, -10.0, +10.0 > // Posi��o da l�mpada. color rgb 0.5 * < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } // ====================================================================== // EIXOS DE COORDENADAS #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end // ====================================================================== // CORES E TEXTURAS //background{ color rgb < 0.75, 0.80, 0.85 > } #include "nuvens.inc" #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ ambient 0.1 diffuse 0.1 reflection 0.8 * <1,1,1> } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 1.00, 1.00 > } finish{ ambient 0.1 diffuse 0.1 reflection 0.8 * <1,1,1> } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.90, 0.70 > } finish{ diffuse 0.1 reflection 0.8*< 1.00, 0.90, 0.70 > ambient 0.1 } } #declare tx_furo = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > filter 0.70 } finish{ diffuse 0.01 ambient 0.02} } #declare tx_vidro = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_world = texture{ pigment{ color rgb < 1.0, 1.0, 1.0 > } finish{ diffuse 0.01 ambient 0.02} } // ====================================================================== // DESCRI��O DA CENA #declare raio = 2.000; /* Os parâmetros enviados devem ser na ordem: pescoço, pernas esquerdas da frente para trás, pernas direitas de frente para trás, asa esquerda e asa direita, sendo que: -> O pescoço possui dois ângulos: um para a rotação do pescoço e outro para a rotação da cabeça; -> Cada perna possui três ângulos: um para a rotação da coxa, outra para a rotação da canela e outra para a rotação do pé; -> Cada asa possui dois ângulos: um para a parte anterior e outro para a parte posterior. Ou seja, a galinha receberá 24 parâmetros no total */ /* padrão do a_pescoco = -60 padrão do a_cabeca = 45 padrão do a_coxa = 120 padrão do a_canela = -30 padrão do a_pe = -90 */ #include "retalho.inc" //setor 1 #declare p11=<-0.00,0.00,0.00>; #declare p12=<-0.33,0.00,0.30>; #declare p13=<-0.66,0.00,0.45>; //#declare p14=<-1.00,0.00,0.60>; #declare p21=<-0.00,0.33,0.00>; #declare p22=<-0.33,0.33,0.30>; #declare p23=<-0.66,0.33,0.45>; //#declare p24=<-1.00,0.33,0.60>; #declare p31=<-0.2,0.66,0.00>; #declare p32=<-0.33,0.66,0.25>; #declare p33=<-0.66,0.66,0.35>; //#declare p34=<-1.00,0.66,0.45>; #declare p41=<-0.40,1.00,0.00>; #declare p42=<-0.50,1.00,0.00>; #declare p43=<-0.66,1.00,0.00>; //#declare p44=<-1.00,1.00,0.00>; //setor 2 //#declare q11=p14; #declare q12=<-1.20,0.00,0.65>; #declare q13=<-1.40,0.00,0.70>; //#declare q14=<-1.60,0.00,0.75>; //#declare q21=p24; #declare q22=<-1.20,0.33,0.65>; #declare q23=<-1.40,0.33,0.70>; //#declare q24=<-1.60,0.33,0.75>; //#declare q31=p34; #declare q32=<-1.20,0.66,0.45>; #declare q33=<-1.40,0.66,0.45>; //#declare q34=<-1.60,0.66,0.45>; //#declare q41=p44; #declare q42=<-1.20,1.00,0.25>; #declare q43=<-1.40,1.00,0.25>; //#declare q44=<-1.60,1.00,0.00>; //setor 3 //#declare r11=q14; #declare r12=<-2.40,0.00,0.75>; #declare r13=<-3.20,0.00,0.75>; //#declare r14=<-4.00,0.00,0.75>; //#declare r21=q24; #declare r22=<-2.40,0.33,0.75>; #declare r23=<-3.20,0.33,0.75>; //#declare r24=<-4.00,0.33,0.75>; //#declare r31=q34; #declare r32=<-2.40,0.66,0.45>; #declare r33=<-3.20,0.66,0.45>; //#declare r34=<-4.00,0.66,0.45>; //#declare r41=q44; #declare r42=<-2.40,1.00,0.00>; #declare r43=<-3.20,1.00,0.00>; //#declare r44=<-4.00,1.00,0.00>; //setor 4 //#declare s11=r14; #declare s12=<-4.20,0.00,0.65>; #declare s13=<-4.40,0.00,0.70>; //#declare s14=<-4.60,0.00,0.75>; //#declare s21=r24; #declare s22=<-4.20,0.33,0.65>; #declare s23=<-4.40,0.33,0.70>; //#declare s24=<-4.60,0.33,0.75>; //#declare s31=r34; #declare s32=<-4.20,0.66,0.45>; #declare s33=<-4.40,0.66,0.45>; //#declare s34=<-4.60,0.66,0.45>; //#declare s41=r44; #declare s42=<-4.20,1.00,0.25>; #declare s43=<-4.40,1.00,0.25>; //#declare s44=<-4.60,1.00,0.00>; //setor 5 //#declare t11=s14; #declare t12=<-4.93,0.00,0.60>; #declare t13=<-5.26,0.00,0.45>; #declare t14=<-5.59,0.00,0.30>; //#declare t21=s24; #declare t22=<-4.93.33,0.60>; #declare t23=<-5.26,0.33,0.45>; #declare t24=<-5.59,0.33,0.30>; //#declare t31=s34; #declare t32=<-4.93,0.66,0.75>; #declare t33=<-5.26,0.66,0.50>; #declare t34=<-5.39,0.66,0.25>; //#declare t41=s44; #declare t42=<-4.93,1.00,0.00>; #declare t43=<-5.06,1.00,0.00>; #declare t44=<-5.16,1.00,0.00>; #declare p14=(p13+q12)/2; #declare p24=(p23+q22)/2; #declare p34=(p33+q32)/2; #declare p44=(p43+q42)/2; #declare q14=(q13+r12)/2; #declare q24=(q23+r22)/2; #declare q34=(q33+r32)/2; #declare q44=(q43+r42)/2; #declare r14=(r13+s12)/2; #declare r24=(r23+s22)/2; #declare r34=(r33+s32)/2; #declare r44=(r43+s42)/2; #declare s14=(s13+t12)/2; #declare s24=(s23+t22)/2; #declare s34=(s33+t32)/2; #declare s44=(s43+t42)/2; #declare q11=p14; #declare q21=p24; #declare q31=p34; #declare q41=p44; #declare r11=q14; #declare r21=q24; #declare r31=q34; #declare r41=q44; #declare s11=r14; #declare s21=r24; #declare s31=r34; #declare s41=r44; #declare t11=s14; #declare t21=s24; #declare t31=s34; #declare t41=s44; #macro metade_carro () union{ retalho(p11,p12,p13,p14,p21,p22,p23,p24,p31,p32,p33,p34,p41,p42,p43,p44,tx_plastico,tx_fosca) retalho(q11,q12,q13,q14,q21,q22,q23,q24,q31,q32,q33,q34,q41,q42,q43,q44,tx_plastico,tx_fosca) retalho(r11,r12,r13,r14,r21,r22,r23,r24,r31,r32,r33,r34,r41,r42,r43,r44,tx_plastico,tx_fosca) retalho(s11,s12,s13,s14,s21,s22,s23,s24,s31,s32,s33,s34,s41,s42,s43,s44,tx_plastico,tx_fosca) retalho(t11,t12,t13,t14,t21,t22,t23,t24,t31,t32,t33,t34,t41,t42,t43,t44,tx_plastico,tx_fosca) } #end // Cena: union { //object{ eixos(3.00) } object{ metade_carro () } object{ metade_carro () scale <1,-1,1> } }