// 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 < 1, 1, 1 > } #declare tx_plastico = texture{ //pigment{ color rgb < 0.00, 0.00, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_pele = texture{ pigment{ color rgb < 0.8, 0.8, 0.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #declare alturaCabeca = 1.00; #declare alturaCorpo = 3.00; #declare alturaPerna = 1.00; #declare base = 1.000; #declare alturaDegrau = 1; #declare alturaPessoa = alturaCabeca/2 + alturaCorpo + alturaPerna; #declare comprimentoDegrau = 10; #declare cabeca = sphere{ < 0,0,0 >, alturaCabeca/2 texture {tx_pele}} #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #declare corpo = cone{<0.00, 0.00, -alturaCorpo>, base, <0.00, 0.00, -alturaCabeca/2>, alturaCabeca/4} #declare perna = cylinder{ < 0.00, 0.00, -alturaPerna/2 >, < 0.00, 0.00, +alturaPerna/2 >, 0.2 texture {tx_pele} } #declare degrau = box{ <-base,0,0>, } #declare pessoa = union { object{ cabeca } object{ corpo } object{perna translate <0, -0.2, -alturaCorpo>} object{perna translate <0, +0.2, -alturaCorpo>} } #declare pessoas = union{ #declare i = 0; #while (i < 5) #if (i > 2) object {pessoa translate < 0, 1+2*i, alturaPessoa > texture{pigment{color rgb }}} #else object {pessoa translate < 0, 1+2*i, alturaPessoa > texture{pigment{color rgb <1.0, 0.0, 1.0>}}} #end #declare i = i+1; #end } #declare degrauComPessoas = union{ object{ pessoas } object{ degrau } } #declare coral = union{ #declare i = 0; #while (i < 5) object {degrauComPessoas translate < -base*2*i, 0, alturaDegrau*i> } #declare i = i+1; #end } // #if (cond), igualdade eh =, and eh &, or eh |, diferente !=, >=, <= // #else // #end #include "eixos.inc" // Aqui está a cena, finalmente: // coral aleatorio: // uma escada // varias pessoas // alguns cantores diferentes (sem uniforme) union{ object{ eixos(3.00) } object{ chao translate < 0,0,-5 > texture{ tx_xadrez } } object{coral} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 12.0; #declare dir_camera = < 4.00, -2.00, 0.00 >; //#declare dir_camera = < 0.00, 10.00, 0.00 >; //#declare dir_camera = < 10.00, 5.00, 0.00 >; #declare dist_camera = 11.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)