// TP02 - 14/08/03 // Last edited on 2003-10-22 05:17:17 by stolfi #include "colors.inc" // ====================================================================== // CÂMERA #declare ctr = < 0.00, 7.00, 0.00 >; #declare camdir = < 10.00, 5.00, 25.00 >; camera { location ctr + 0.55*camdir // Posição do observador. right -0.75*x // Largura RELATIVA da imagem. up 1.00*y // Altura RELATIVA da imagem. sky y // Qual direção é "para cima"? look_at ctr // 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.2 * < 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.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare tinta_cinza = texture { pigment { Gray75 } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_vermelha = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare olho = cylinder { < 0.00, 0.00, 0.00>, < 0.00, 0.20, 0.00>, 0.2 rotate -90*x texture { tinta_vermelha } } #declare boca = difference { cylinder { < 0.00, 0.00, 0.00>, < 0.00, 0.20, 0.00>, 0.3 } cylinder { < 0.00, 1.00, 0.00>, < 0.00, -1.00, 0.00>, 0.2 } texture { tinta_vermelha } scale <1.5,1,1> rotate -90*x } #declare cabeca = union{ cylinder { < 0.00, 10.00, 0.00 >, < 0.00, 12.50, 0.00 >, 1.5 texture { tinta_cinza } } object {olho translate < 1.20, 12.10, 1.30> rotate 20*y} object {olho translate < 1.20, 12.10, 1.30> rotate -20*y} object {boca translate < 1.20, 10.80, 1.30>} } #declare pescoco = cylinder { < 0.00, 10.00, 0.00 >, < 0.00, 9.00, 0.00 >, 0.3 texture { tinta_cinza } } #declare braco1 = union{ cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 3.00, 0.00 >, 0.4 rotate -90*x } cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 2.50, 0.00 >, 0.4 rotate 90*x rotate 45*y rotate -30*z } texture { tinta_cinza } } #declare braco2 = union{ cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 3.00, 0.00 >, 0.4 rotate -90*x } cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 2.50, 0.00 >, 0.4 rotate 90*x rotate -45*y rotate -30*z } texture { tinta_cinza } } #declare perna = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 5.00, 0.00 >, 0.5 texture { tinta_cinza } } #declare corpo = union{ object {pescoco} cylinder { < 0.00, 9.00, 0.00 >, < 0.00, 6.00, 0.00 >, 1.5 texture { tinta_cinza } } object {braco1 translate< -1.50, 8.00, 2.50>} object {braco2 translate< 1.50, 8.00, 2.50>} object {perna translate< 0.80, 1.00, 0.00>} object {perna translate< -0.80, 1.00, 0.00>} } #declare gomo_saia = box { < -0.50, 0.00, 0.30 >, < 0.50, 2.50, -.30> rotate -30*x texture { tinta_vermelha } } #declare saia = union{ object {gomo_saia rotate -15*y translate< -1.0, 4.00, 1.70>} object {gomo_saia rotate 20*y translate< 0.90 , 4.00, 1.70>} object {gomo_saia rotate 80*y translate< 2.0, 4.00, 0.00>} } #declare meio_laco = intersection { cone { < 0.00 ,-0.80 ,0.00 >, 0.5 < 0.00, 0.80, 0.00 >, 0.0 } sphere { < 0.00, 0.00, 0.00 >, 0.5 } rotate -90*x rotate -65*y rotate -10*z } #declare laco = union{ union { object { meio_laco translate <-1.0,0.0,0.0>} object { meio_laco scale<-1,1,1>} translate <10,10,10> } sphere { <9.5,10,10>,0.3 } translate <-10,-10,-10> rotate 60*y texture { tinta_vermelha } } // Aqui está a cena: union { object { laco translate < 0.7, 12.70, 0.0 >} object { cabeca } object { corpo } object {saia} rotate -10*y }