/* */ camera{ location 2*< -15.0, -10.0, 0.0 > // Posição do observador. right -0.45*x // Largura RELATIVA da imagem. up 0.60*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.0, 0.0, 0.0 > // Para onde a câmera está apontando. } // ====================================================================== // 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, 0.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, +50.0 > // Posição da lâmpada. color rgb 1 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA #macro galinha(aPescoco1, aPescoco2, aPescoco3, aPerna1_1, aPerna1_2, aPerna1_3, aPerna2_1, aPerna2_2, aPerna2_3, aPerna3_1, aPerna3_2, aPerna3_3, aPerna4_1, aPerna4_2, aPerna4_3, aPerna5_1, aPerna5_2, aPerna5_3, aPerna6_1, aPerna6_2, aPerna6_3, aAsa1_1, aAsa1_2, aAsa1_3, aAsa1_x, aAsa2_1, aAsa2_2, aAsa2_3, aAsa2_x) union { cylinder {<0,0,0>, <3.5,0,0>, 1} sphere {<0,0,0>, 1} sphere {<3.5,0,0>, 1} object { cabeca1(aPescoco2, aPescoco3) rotate aPescoco1*y translate 0.5*<-1.414213562, 0, 1.414213562> } object { perna1(aPerna1_2, aPerna1_3) rotate aPerna1_1*y translate 0.5*<0.5, -1.414213562, -1.414213562> } object { perna1(aPerna2_2, aPerna2_3) rotate aPerna2_1*y translate 0.5*<0.5, 1.414213562, -1.414213562> } object { perna1(aPerna3_2, aPerna3_3) rotate aPerna3_1*y translate 0.5*<3.5, -1.414213562, -1.414213562> } object { perna1(aPerna4_2, aPerna4_3) rotate aPerna4_1*y translate 0.5*<3.5, 1.414213562, -1.414213562> } object { perna1(aPerna5_2, aPerna5_3) rotate aPerna5_1*y translate 0.5*<6.5, -1.414213562, -1.414213562> } object { perna1(aPerna6_2, aPerna6_3) rotate aPerna6_1*y translate 0.5*<6.5, 1.414213562, -1.414213562> } object { asa1(aAsa1_2, aAsa1_3) rotate aAsa1_1*y rotate aAsa1_x*x translate 0.5*<1.5, -1.414213562, 1.414213562> } object { asa1(aAsa2_2, aAsa2_3) rotate aAsa2_1*y rotate aAsa2_x*x translate 0.5*<1.5, 1.414213562, 1.414213562> } } #end /************************* Cabeca *************************/ #macro cabeca1 (aPescoco2, aPescoco3) union { sphere {<0,0,0>, 0.25} cylinder {<0,0,0>, <0,0,1>, 0.2} object { cabeca2(aPescoco3) rotate aPescoco2*y translate <0,0,1> } } #end #macro cabeca2 (aPescoco3) union { sphere {<0,0,0>, 0.25} cylinder {<0,0,0>, <0,0,1>, 0.15} object { cabeca() rotate aPescoco3*y translate <0,0,1> } } #end #macro cabeca() union { sphere {<0,0,0>, 0.2} sphere {<0,0,0.4>, 0.4} cone { <0, 0, 0.4>, 0.2 <-0.8, 0, 0.4>, 0 } } #end /************************* Perna *************************/ #macro perna1(aPerna1_2, aPerna1_3) union { sphere {<0,0,0>, 0.3} cylinder {<0,0,0>, <0,0,-1>, 0.25} object { perna2(aPerna1_3) rotate aPerna1_2*y translate <0,0,-1> } } #end #macro perna2(aPerna1_3) union { sphere {<0,0,0>, 0.3} cylinder {<0,0,0>, <0,0,-1>, 0.25} object { pe() rotate aPerna1_3*y translate <0,0,-1> } } #end #macro pe() union { sphere {<0,0,0>, 0.3} box {<-0.7, -0.4, -0.3>, <0.3, 0.4, 0.0>} } #end /************************* Asa *************************/ #macro asa1(aAsa1_2, aAsa1_3) union { sphere {<0,0,0>, 0.1} cylinder {<0,0,0>, <0,0,0.75>, 0.085} object { asa2(aAsa1_3) rotate aAsa1_2*y translate <0,0,0.75> } } #end #macro asa2(aAsa1_3) union { sphere {<0,0,0>, 0.1} cylinder {<0,0,0>, <0,0,1.5>, 0.085} object { pontaAsa() rotate aAsa1_3*y translate <0,0,1.5> } } #end #macro pontaAsa() union { sphere {<0,0,0>, 0.1} cone { <0,0,0>, 0.085, <0,0,1.5>, 0.0 } } #end object { galinha(-30,30, 15, -15,60,-30, -30,60,-30, -45,90,-45, -30,60,-30, -45,60,-45, -30,60,-30, 0,-60,30,60, 0,-60,30,-60) texture {tx_fosca} } object { galinha(-70,40,15, -45,90,-45, 0,60,0, -30,60,-30, -15,60,-30, -30,60,-30, -45,60,-45, 30,-60,30,15, 30,-60,30,-15) texture {tx_fosca} translate <0,-6,0> } object { galinha(-15,30,-45, 0,60,-45, -30,60,-30, 30,-60,-30, -45,90,-45, -15,60,-30, -30,60,-30, 30,-60,30,90, 30,-60,30,0) texture {tx_fosca} translate <0,6,0> }