// Includes #include "retalho.inc" #include "nuvens.inc" // Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2009-03-09 18:44:03 by stolfi // ====================================================================== // CÂMERA camera{ location < 8.00, 15.00, 10.0 > // Posição do observador. right -0.75*x // Largura RELATIVA da imagem. up 0.60*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 0.00, 1.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, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.0 * < 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.5 * < 1.00, 1.00, 1.00 > // Intensidade e corda 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 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 0.40, 0.40, 0.40 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_carro = texture{ pigment{ color rgb < 0.40, 0.40, 0.40 > } finish{ diffuse 0.1 ambient 0.1 reflection 0.5 * <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_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_fosca1 = texture{ pigment{ color rgb < 1.00, 0.50, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA //#declare raio = 2.000; // Partes da cena: #declare P12 = <0,1,0>; //dir sup entra1 #declare R12 = <0,-1,0>; //dir inf entra1 #declare R11 = (P12 + R12) / 2; //canto dir inf x #declare P11 = (P12 + R12) / 2; //canto dir sup x #declare Q12 = <0,4.2,0>; //dir sup entra #declare P13 = <0,2,0>; //dir inf entra #declare P14 = (Q12 + P13) / 2; //canto dir inf x #declare Q11 = (Q12 + P13) / 2; //canto dir sup x #declare P22 = <0,1,1>; //dir cent sup entra1 #declare R22 = <0,-1,1>; //dir cent inf entra1 #declare P21 = (P22 + R22) / 2; //dir cent cant sup x #declare R21 = (P22 + R22) / 2; //dir cent cant inf x #declare P23 = <0,2,1>; //dir cent inf entra #declare Q22 = <0,4.2,1>; //dir cent sup entra #declare P24 = (P23 + Q22) /2; //dir cent cant inf x #declare Q21 = (P23 + Q22) /2; //dir cent cant sup x #declare P32 = <0,1,2>; //esq cent sup entra1 #declare R32 = <0,-1,2>; //esq cent inf entra1 #declare R31 =(P32 + R32) / 2; //esq cent cant inf x #declare P31 = (P32 + R32) / 2; //esq cent cant sup x #declare P33 = <0,2,2>; //esq cent inf entra #declare Q32 = <0,4.2,1.5>; //esq cent sup entra #declare P34 = (P33 + Q32) / 2; //esq cent cant inf x #declare Q31 = (P33 + Q32) / 2; //esq cent cant sup x #declare P42 = <2,1,3>; //esq sup entra1 #declare R42 = <2,-1,3> ; //esq inf x #declare R41 = (P42 + R42) / 2; //canto esq inf #declare P41 = (P42 + R42) / 2; //canto esq sup x #declare P43 = <2,2,3>; //esq inf entra //#declare Q42 = <2,4.2,2.>; //esq sup entra #declare Q42 = (Q32 + <4,4.2, 1.5>)/2; //esq sup entra #declare P44 = (P43 + Q42) / 2; //canto esq inf x #declare Q41 = (P43 + Q42) / 2; //canto esq sup x //-------------------------------------------------------------- #declare Q13 = <0,5.2,0>; //dir inf #declare Q14 = <0,6.2,0>; //canto dir inf #declare Q23 = <0,5.2,1>; //dir cent inf #declare Q24 = <0,6.2,1>; //dir cent cant inf #declare Q33 = <0,5.2,1.5>; //esq cent inf #declare Q34 = <0,6.2,1.5>; //esq cent cant inf //#declare Q43 = <2,5.2,2.>; //esq inf #declare Q43 = (Q33 + <4,5.2,1.5>) / 2; //#declare Q44 = <2,6.2,2.>; //canto esq inf #declare Q44 = (Q34 + <4,6.2,1.5>) / 2; //canto esq inf //-------------------------------------------------------------- #declare S12 = <0,-4.2,0>; //dir inf entra2 #declare R13 = <0,-2,0>; //dir sup entra2 #declare R14 = (R13 + S12) / 2; //canto dir sup x #declare S11 = (R13 + S12) / 2; //canto dir inf x #declare S22 = <0,-4.2,1>; //dir cent inf entra2 #declare R23 = <0,-2,1>; //dir cent sup entra2 #declare S21 = (S22 + R23) / 2; //dir cent cant inf x #declare R24 = (S22 + R23) / 2; //dir cent cant sup x #declare S32 = <0,-4.2,1.5>; //esq cent inf entra2 #declare R33 = <0,-2,2>; //esq cent sup entra2 #declare S31 = (S32 + R33) / 2; //esq cent cant inf x #declare R34 = (S32 + R33) / 2; //esq cent cant sup x #declare S42 = <2,-4.2,2>; //esq inf entra2 #declare R43 = <2,-2,3>; //esq sup entra2 #declare S41 = (S42 + R43) /2; //canto esq inf x #declare R44 = (S42 + R43) /2; //canto esq sup x //------------------------------------------------------------------ #declare S13 = <0,-5.2,0>; //dir sup #declare S14 = <0,-6.2,0>; //canto dir sup #declare S23 = <0,-5.2,1>; //dir cent sup #declare S24 = <0,-6.2,1>; //dir cent cant sup #declare S33 = <0,-5.2,1.5>; //esq cent sup #declare S34 = <0,-6.2,1.5>; //esq cent cant sup #declare S43 = <2,-5.2,2>; //esq sup #declare S44 = <2,-6.2,2>; //canto esq sup #macro metade_carro() union { retalho (P11,P12,P13,P14,P21,P22,P23,P24,P31,P32,P33,P34,P41,P42,P43,P44, tx_fosca1,tx_fosca_carro) retalho (Q11,Q12,Q13,Q14,Q21,Q22,Q23,Q24,Q31,Q32,Q33,Q34,Q41,Q42,Q43,Q44, tx_fosca1,tx_fosca_carro) retalho (R11,R12,R13,R14,R21,R22,R23,R24,R31,R32,R33,R34,R41,R42,R43,R44, tx_fosca1,tx_fosca_carro) retalho (S11,S12,S13,S14,S21,S22,S23,S24,S31,S32,S33,S34,S41,S42,S43,S44, tx_fosca1,tx_fosca_carro) } #end //______________ //Gerando a Cena union { object { eixos (5) } object {metade_carro() translate <-2, 0, 0> } object { metade_carro() scale <-1,1, 1> translate <2,0,0> } } //retalho (Q11,Q12,Q13,Q14,Q21,Q22,Q23,Q24,Q31,Q32,Q33,Q34,Q41,Q42,Q43,Q44, tx_fosca,tx_plastico)