// 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 1.5 *< 14.00, 7.00, 3.50 > // Posição do observador. right -0.6*x // Largura RELATIVA da imagem. up 0.30*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 5.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, +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_cinza = 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_preto = texture{ pigment{ color rgb < 0, 0, 0 > } } #declare tx_branco = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ ambient 0.3 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.65, 0.00 > } 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 articulacao= sphere{ < 0 , 0 , 0>, 0.2 texture{ tx_branco } } #macro pe() box{ < -0.2 , 0 , -0.3>, < 0.2 , 0.2, 0.6 > texture{ tx_branco } } #end #macro canela_com_pe(beta) union { object { cylinder { <0.0,0.0,0.0> , <0.0,1,0.0> , 0.15 texture{tx_branco} } } object { articulacao translate 1*y } object { pe() rotate -beta*x translate 1*y } } #end #macro perna(alfa, beta) union { object { cylinder { <0.0,0.0,0.0> , <0.0,0.7,0.0> , 0.15 texture{tx_branco} } } object { articulacao translate 0.7*y } object { canela_com_pe(beta) rotate alfa*x translate 0.7*y } } #end #macro asinha() cone { <0,0,0>, 0.15, <0, 0.8 ,0>, 0.05 texture{tx_branco} } #end #macro asa(alfa) union { object { cylinder { <0.0,0.0,0.0> , <0.0,0.8,0.0> , 0.15 texture{tx_branco} } } object { articulacao translate 0.8*y } object { asinha() rotate -alfa*x translate 0.8*y } } #end #declare corpo_galinha= sphere{ < 0.00, 0.00, 0.00 >, 1.0 texture{ tx_branco } } #macro galinha( ang_AD, ang_AE, ang_AsaAsinhaD, ang_AsaAsinhaE, ang_PMD, ang_AlfaPMD, ang_BetaPMD,ang_PME, ang_AlfaPME, ang_BetaPME, ang_PTD, ang_AlfaPTD, ang_BetaPTD,ang_PTE, ang_AlfaPTE, ang_BetaPTE, ang_PFD, ang_AlfaPFD, ang_BetaPFD,ang_PFE, ang_AlfaPFE, ang_BetaPFE, cabecaAngHoriz, cabecaAngVert, angPescocoCorpo) union { object { corpo_galinha scale <4,1.2,1.2> } //Asa Asinha Direita object { articulacao translate <0,1,0.4> } object { asa (ang_AsaAsinhaD) rotate ang_AD*x translate <0,1,0.4>} //Asa Asinha Esquerda object { articulacao translate <0,-1,0.4> } object { asa (ang_AsaAsinhaE) rotate 180*z rotate -ang_AE*x translate <0,-1,0.4>} //Perna Meio Direita object { articulacao translate <0,1,-0.4> } object {perna(ang_AlfaPMD,ang_BetaPMD) rotate -90*x rotate -90*z rotate ang_PMD*y translate <0,1,-0.4>} //Perna Meio Esquerda object { articulacao translate <0,1,-0.4> scale<1,-1,1> } object {perna(ang_AlfaPME,ang_BetaPME) rotate -90*x rotate -90*z rotate ang_PME*y translate <0,1,-0.4> scale<1,-1,1>} //Perna Tras Direita object { articulacao translate <-1.3 ,1,-0.4> } object {perna(ang_AlfaPTD,ang_BetaPTD) rotate -90*x rotate -90*z rotate ang_PTD*y translate <-1.3,1,-0.4>} //Perna Tras Esquerda object { articulacao translate <-1.3 ,1,-0.4> } object {perna(ang_AlfaPTE,ang_BetaPTE) rotate -90*x rotate -90*z rotate ang_PTE*y translate <-1.3,1,-0.4> scale<1,-1,1>} //Perna Frente Direita object { articulacao translate <1.3 ,1,-0.4> } object {perna(ang_AlfaPFD,ang_BetaPFD) rotate -90*x rotate -90*z rotate ang_PFD*y translate <1.3,1,-0.4>} //Perna Frente Esquerda object { articulacao translate <1.3 ,1,-0.4> } object {perna(ang_AlfaPFE,ang_BetaPFE) rotate -90*x rotate -90*z rotate ang_PFE*y translate <1.3,1,-0.4> scale<1,-1,1>} //Cabeça com Pescoco object { cabeca_com_pescoco(cabecaAngHoriz, cabecaAngVert) rotate -90*x translate<2.5,0,2.6> rotate angPescocoCorpo*y} } #end #declare cabeca= union { sphere{ < 0.00, 0.00, 0.00 >, 0.6 texture{ tx_branco } } object { sphere{ < 0.00, 0.00, 0.00 >, 0.1 texture{ tx_fosca } } translate <0.6,0,-0.2> } object { sphere{ < 0.00, 0.00, 0.00 >, 0.1 texture{ tx_fosca } } translate <0.6,0,0.2> } object { cone { <0 , 0 ,0>, 0.15 <1, 0 ,0>, 0 texture{tx_fosca} } translate<0,0.2,0> } } #macro cabeca_com_pescoco(ang_Horiz, ang_Vert) union { object{ cabeca rotate ang_Vert*z rotate ang_Horiz*y} object { articulacao scale 1.7 translate <0,0.7,0> } cone { <0,0.6,0>, 0.2 <0, 2.0,0>, 0.3 texture{tx_branco} } } #end union { object {galinha(60,60,45,45,20,40,20,20,40,20,20,40,20,20,40,20,20,40,20,20,40,20, 15, 15, 5) scale 0.5 } object {galinha(90,90,30,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 5, -60, 5) scale 0.5 rotate 90*z translate 4*y} object {galinha(60,60,0,0,20,40,20,20,40,20,20,40,20,20,40,20,20,40,20,20,40,20, -60, 15, 5) scale 0.5 translate 8*y } }