// 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, 2.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_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 olhos = sphere{ < 0,0,0 >, 0.20 texture{ tx_fosca } pigment{ color rgb < 1.00, 1.00, 1.00 > } } #declare bico = cone{ < 0.00, 0.00, 0.0 >, 0.30, < 0.60, 0.00, 0.0 >, 0.00 texture{ tx_fosca } } //_________________ // Cabeça da galinha #declare cabecao = union{ sphere{ < 0,0,0 >, 0.60 texture{ tx_fosca } } object {olhos translate <0.2,0.4,0.3> } object {olhos translate <0.2,-0.4,0.3> } object {bico translate <0.5,0.0,0.0>} } //_________________ #declare articulacao = sphere{ < 0,0,0 >, 0.22 texture{ tx_fosca } } #declare pe = box { < 0.30, 0.10, 0.60 >, < -0.30, -0.10, -0.20 > texture{ tx_fosca } } #declare canela = union{ cylinder{ < -0.0, +0.00, -0.00 >, < +0.0, +1.50, +0.00 >, 0.2 texture{ tx_fosca } } object {articulacao translate <0.0,1.5,0.0> } object {articulacao translate <0.0,0.0,0.0> } } //_______________________ #declare cocha = union{ cylinder{ < -0.0, +0.00, -0.00 >, < +0.0, +2.00, +0.00 >, 0.2 texture{ tx_fosca } } object {articulacao translate <0.0,2.0,0.0> } object {articulacao translate <0.0,0.0,0.0> } } //______________________ #declare pescoco = union{ cylinder{ < -0.0, +0.00, -1.50 >, < +0.0, +0.00, +0.00 >, 0.2 texture{ tx_fosca } } object {articulacao translate <0.0,0.0,-1.50> } object {articulacao translate <0.0,0.0,0.0> } } //______________________ #declare aux_asa2 = cone{ < 0.00, 0.00, 0.0 >, 0.20, < 0.0, 0.00, 0.9 >, 0.0 texture{ tx_fosca } } #declare art_asa = union{ cylinder{ < 0.40, +0.00, 0.00 >, < -0.40, +0.00, +0.00 >, 0.2 texture{ tx_fosca } } object {articulacao translate <0.4,0.0,0.0> } object {articulacao translate <-0.4,0.0,0.0> } } #declare asa1 = union { box { < 0.40, 0.10, 0.70 >, < -0.40, -0.10, 0.00 > texture{ tx_fosca } } object { art_asa } object { art_asa translate z*0.7} } #declare asa2 = union { object {aux_asa2 scale x*3 translate z*0.09} object { art_asa } } //___________________________ #declare rabo = object { asa2 rotate z * 90 } //____________________________ #declare corpo_galinha = sphere{ < 0,0,0 >, 1.50 texture{ tx_fosca } } //____________________________ //__________________ // Macros da galinha #macro canela_com_pe (beta) union{ object {canela} object { pe rotate beta*x translate <0.0,1.7,0.0> } } #end #macro perna (alfa, beta) union{ object { cocha } object { canela_com_pe(beta) rotate alfa*x translate y*2.0 } } #end #macro cabeca_pescoco (beta) union{ object { cabecao rotate beta * y } object { pescoco translate z * -0.6 } } #end #macro asa (beta) union{ object {asa1 translate z * -0.7} object {asa2 rotate beta * x } } #end #macro galinha (cab, pesc, asa_ant1, asa_1, asa_ant2, asa_2, perna_pe1, perna_jo1, perna_coch1, perna_pe2, perna_jo2, perna_coch2, perna_pe3, perna_jo3, perna_coch3, perna_pe4, perna_jo4, perna_coch4, perna_pe5, perna_jo5, perna_coch5, perna_pe6, perna_jo6, perna_coch6, rabs) union { object { corpo_galinha scale x*2.3 } object { cabeca_pescoco(cab) translate z * 2.1 rotate y*pesc translate <2.5, 0.0, 1.1> } object { asa(asa_ant1) translate z * 0.7 rotate x*asa_1 translate <0.0, -1.0, 1.0> } object { asa(asa_ant2) translate z * 0.7 rotate x*asa_2 translate <0.0, 1.0, 1.0> } object { perna(perna_jo1, perna_pe1) rotate x * -90 rotate z * -90 rotate y * perna_coch1 translate <0.0, 1.5,-0.3>} object { perna(perna_jo2, perna_pe2) rotate x * -90 rotate z * -90 rotate y * perna_coch2 translate <1.4, 1.3,-0.3>} object { perna(perna_jo3, perna_pe3) rotate x * -90 rotate z * -90 rotate y * perna_coch3 translate <-1.4, 1.3,-0.3>} object { perna(perna_jo4, perna_pe4) rotate x * -90 rotate z * -90 rotate y * perna_coch4 translate <0.0, -1.5,-0.3>} object { perna(perna_jo5, perna_pe5) rotate x * -90 rotate z * -90 rotate y * perna_coch5 translate <1.4, -1.3,-0.3>} object { perna(perna_jo6, perna_pe6) rotate x * -90 rotate z * -90 rotate y * perna_coch6 translate <-1.4, -1.3,-0.3>} object {rabo rotate y * rabs translate <-2.4, 0.0,1.0>} } #end //______________ //Gerando a Cena union{ object{ eixos(3.00) } object {galinha (40,60, 60, 20, -60, -20, -40 ,60, 60, -20 ,50, 30, -20 ,50, 30, -20 ,50, 30, -20 ,50, 30, -20 ,50, 30, -50) scale 0.5 translate <1.5, 0, 0.0> } object {galinha (-30,20, 15, 20, -15, -20, -20 ,50, 30, -30 ,60, 20, -20 ,50, 30, -20 ,50, 30, -20 ,50, 30, -20 ,50, 30, -50) scale 0.3 translate <-1.5, 0, -0.8> } object {galinha (10,20, 80, 80, -80, -80, -60 ,80, 30, -60 ,30, 30, -60 ,50, 30, -80 ,50, 30, -80 ,50, 30, -80 ,50, 30, -50) scale 0.2 translate <-3.5, 0, -1.1> } }