// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2009-03-09 18:44:03 by stolfi #include "retalho.inc" #include "nuvens.inc" // ====================================================================== // CÂMERA camera{ //location <0, 0, -6> // Posição do observador. location <12, 8, 7> //location <-15, -8, 1> //location <0, -8, 8> //location <0, 1, 10> //location <0, -1, 6> //location <0, 1, 10> //location <0 , 10, 0> //location < 6.00, 2.00, 2.00 > // Posição do observador. right 1.8*x // Largura RELATIVA da imagem. up 1.8*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? //look_at < 0.00, 0.50, 1.00 > // Para onde a câmera está apontando. look_at < 9,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 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. //} //light_source{ // 10 * < -50.0, -10.0, +10.0 > // Posição da lâmpada. // color rgb 0.7 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. //} light_source{ < 30, 30, 30> // Posição da lâmpada. color rgb 0.3*< 1.00, 1.00, 1.00 > // Intensidade e corda luz. } /* light_source{ < 30, 30, -30> // Posição da lâmpada. color rgb 0.3*< 1.00, 1.00, 1.00 > // Intensidade e corda luz. } */ light_source{ < -30, 30, 30> // Posição da lâmpada. color rgb 0.3*< 1.00, 1.00, 1.00 > // Intensidade e corda luz. } /* light_source{ < -30, 30, -30> // Posição da lâmpada. color rgb 0.3*< 1.00, 1.00, 1.00 > // Intensidade e corda luz. } */ light_source{ < 8, 10, 4> // Posição da lâmpada. color rgb < 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_preto = texture{ pigment{ color rgb 0 } finish{ diffuse 0.1 reflection 0.2*< 1.0, 1.0, 1.0 > ambient 0.6 specular 0.1 roughness 0.005 } } #declare tx_plastico_cinza = texture{ pigment{ color rgb 0.5 } finish{ diffuse 0.7 reflection 0.25*< 1.0, 1.0, 1.0 > ambient 0.3} } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.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_vidro_preto = texture{ pigment{ color rgb 0 filter 0.90 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } background{ color rgb < 0.75, 0.80, 0.85 > } // ====================================================================== // DESCRIÇÃO DA CENA #declare p0_11 = <1.98,0,0>; #declare p0_12 = <1.98,2.9,0>; #declare p0_13 = <1.98,3,0>; #declare p0_14 = <1.98,3.1,0>; #declare p0_21 = <2,0,3>; #declare p0_22 = <2,2.9,3>; #declare p0_23 = <2,3,3>; #declare p0_24 = <2,3.1,0>; #declare p0_31 = <3,0,3>; #declare p0_32 = <3,2.9,3>; #declare p0_33 = <3,3,3>; #declare p0_34 = <3,3.1,0>; #declare p1_21 = <4.1,0,3.5>; #declare p1_22 = <4.1,2.9,3.5>; #declare p1_23 = <4.1,3,3.5>; #declare p1_24 = <4.1,3.1,0>; #declare p1_31 = <6,0,3.9>; #declare p1_32 = <6,2.9,3.9>; #declare p1_33 = <6,3,3.5>; #declare p1_34 = <6,3.1,0>; #declare p2_21 = <8,0,3.9>; #declare p2_22 = <8,2.9,3.9>; #declare p2_23 = <8,3,3.9>; #declare p2_24 = <8,3.1,0>; #declare p2_31 = <9,0,3.9>; #declare p2_32 = <9,2.9,3.9>; #declare p2_33 = <9,3,3.9>; #declare p2_34 = <9,3.1,0>; #declare p3_21 = <9.2,0,2.5>; #declare p3_22 = <9.2,2.9,2.5>; #declare p3_23 = <9.2,3,2.5>; #declare p3_24 = <9.2,3.1,0>; #declare p3_31 = <12,0,2.5>; #declare p3_32 = <12,2.9,2.5>; #declare p3_33 = <12,3,2.5>; #declare p3_34 = <12,3.1,0>; #declare p4_21 = <13,0,2.5>; #declare p4_22 = <13,2.9,2.5>; #declare p4_23 = <13,3,2.5>; #declare p4_24 = <13,3.1,0>; #declare p4_31 = <14,0,2.5>; #declare p4_32 = <14,2.9,2.5>; #declare p4_33 = <14,3,2.5>; #declare p4_34 = <14,3.1,0>; #declare p4_41 = <14.01,0,0>; #declare p4_42 = <14.01,2.9,0>; #declare p4_43 = <14.01,3,0>; #declare p4_44 = <14.01,3.1,0>; #declare p0_41 = (p0_31+p1_21)/2; #declare p0_42 = (p0_32+p1_22)/2; #declare p0_43 = (p0_33+p1_23)/2; #declare p0_44 = (p0_34+p1_24)/2; #declare p1_41 = (p1_31+p2_21)/2; #declare p1_42 = (p1_32+p2_22)/2; #declare p1_43 = (p1_33+p2_23)/2; #declare p1_44 = (p1_34+p2_24)/2; #declare p2_41 = (p2_31+6*p3_21)/7; #declare p2_42 = (p2_32+6*p3_22)/7; #declare p2_43 = (p2_33+6*p3_23)/7; #declare p2_44 = (p2_34+6*p3_24)/7; #declare p3_41 = (p3_31+p4_21)/2; #declare p3_42 = (p3_32+p4_22)/2; #declare p3_43 = (p3_33+p4_23)/2; #declare p3_44 = (p3_34+p4_24)/2; #declare p1_11 = p0_41; #declare p1_12 = p0_42; #declare p1_13 = p0_43; #declare p1_14 = p0_44; #declare p2_11 = p1_41; #declare p2_12 = p1_42; #declare p2_13 = p1_43; #declare p2_14 = p1_44; #declare p3_11 = p2_41; #declare p3_12 = p2_42; #declare p3_13 = p2_43; #declare p3_14 = p2_44; #declare p4_11 = p3_41; #declare p4_12 = p3_42; #declare p4_13 = p3_43; #declare p4_14 = p3_44; #declare pe = union { retalho(p0_11, p0_12, p0_13, p0_14, p0_21, p0_22, p0_23, p0_24, p0_31, p0_32, p0_33, p0_34, p0_41, p0_42, p0_43, p0_44, tx_plastico_cinza ) retalho(p1_11, p1_12, p1_13, p1_14, p1_21, p1_22, p1_23, p1_24, p1_31, p1_32, p1_33, p1_34, p1_41, p1_42, p1_43, p1_44, tx_plastico_cinza ) difference { retalho(p2_11, p2_12, p2_13, p2_14, p2_21, p2_22, p2_23, p2_24, p2_31, p2_32, p2_33, p2_34, p2_41, p2_42, p2_43, p2_44, tx_plastico_cinza ) box{<8.8, 0, 4.8>,<9.2, 2.4, 2.7> texture{tx_vidro}} } intersection { retalho(p2_11, p2_12, p2_13, p2_14, p2_21, p2_22, p2_23, p2_24, p2_31, p2_32, p2_33, p2_34, p2_41, p2_42, p2_43, p2_44, tx_vidro_preto ) box{<8.8, 0, 4.8>,<9.2, 2.4, 2.7> texture{tx_vidro}} } retalho(p3_11, p3_12, p3_13, p3_14, p3_21, p3_22, p3_23, p3_24, p3_31, p3_32, p3_33, p3_34, p3_41, p3_42, p3_43, p3_44, tx_plastico_cinza ) retalho(p4_11, p4_12, p4_13, p4_14, p4_21, p4_22, p4_23, p4_24, p4_31, p4_32, p4_33, p4_34, p4_41, p4_42, p4_43, p4_44, tx_plastico_cinza ) } #declare pd = object{pe scale <1, -1, 1>} difference { union { object {pd} object {pe} } union { cylinder {<4,-8,1>,<4,8,1>, 0.8} cylinder {<12,-8,1>,<12,8,1>, 0.8} box{<-1,-6,-3>,<16, 16, 1>} } }