// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2010-03-04 15:44:01 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare marrom = texture{ pigment{ color rgb < 1, 0.51, 0.23 > } finish{ diffuse 0.9 ambient 0.1 } } #declare verde = texture{ pigment{ color rgb < 0, 1, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare solo = texture{ pigment{ color rgb < 0, 0.8, 0 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA #declare cones = cone { < 0, 0, -0.6 >, 0, < 0, 0, 0.6 >, 0.3 } #declare cabeca = cone { < 0, 0, -0.8 >, 0.4, < 0, 0, 0.8 >, 0.7 } #declare pescoco = cone { < 0, 0, -0.3 >, 0.4, < 0, 0, 0.3 >, 0.6 } #declare tronco = cone { < 0, 0, -1.5 >, 0.55, < 0, 0, 1.5 >, 0.55 } #declare bolas = sphere { < 0, 0, 0 >, 0.3 } #declare caixa = box{ <-1,-1,-0.2>, <+1,+1,0> } // ====================================================================== #declare M = 4; #declare arVal = array[M]; #declare arVal[0] = 10; #declare arVal[1] = 5; #declare arVal[2] = 6; #declare arVal[3] = 8; #declare roleta = seed(417); #macro bit(value, failure) union { #if (failure = 0) #if (value = 0) object { cones texture { verde } } #else object { cones rotate x*180 texture { verde }} #end #end object { caixa texture{ marrom } rotate y*90 } } #end #macro row(n, value, prob) #local i = 0; #local vv = value; union { #while (n > i) #local failure = 0; #if (rand(roleta) < prob) #local failure = 1; #end object { bit(mod(vv,2), failure) translate < 0, -i*2, 0 > } #local vv = int(vv/2); #local i = i + 1; #end } #end #macro abaco(m, n, values, prob) #local i = 0; union { #while (m > i) object{ row(n, values[i], prob) translate < 0, 0, -i*2 > } #local i = i + 1; #end } #end // ====================================================================== union { object { abaco(M, 6, arVal, 0) translate <0, 6, 5>} object { abaco(M, 6, arVal, 0.2) translate <0, 6, -5>} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 25.0; #declare dir_camera = < 1, 0, 0.2 >; #declare dist_camera = 80.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)