// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = 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_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_azul = texture{ pigment{ color rgb < 0.10, 0.20, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_vermelha = texture{ pigment{ color rgb < 1.00, 0.20, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_branca = texture{ pigment{ color rgb < 1.00, 1.00, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_Escadaria = texture{ pigment{ color rgb < 0.50, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare rolete = seed(315); #include "eixos.inc" #declare Membro = union{ sphere{ <0, 0, 0> 1 } cylinder{ <0, 0, 0>, <0, 0, -5>, 1 } sphere{ <0, 0, -5> 1 } scale 0.3 } #declare Tronco = cylinder{ <0, 0, 0>, <0, 0, -5>, 2 scale 0.5 } #declare Cabeca = union{ sphere{<0, 0, 2> 1 } cone{<0, 0, 1.1>, 0.5, <0, 0, 0>, 0.7 } } #declare Pessoa = union{ object{ Tronco } object{ Membro translate y*1.2 } //Braço esquerdo object{ Membro translate y*(-1.2) } //Braço direito object{ Membro translate <0, 0.5, -2.2> } //Perna esquerda object{ Membro translate <0, -0.5, -2.2> } //Perna direita object{ Cabeca scale 0.5} translate <-0.5, 3, 8> //Coloca a pessoa no primeiro lugar da Escada scale 0.3 } #declare cadeira = union{ box{<0, 0, 0>, <-.5, .5, .1>} box{<-.4, 0, 0>, <-.5, .5, .5>} translate <-0.25, 0.25, 1> // Coloca uma cadeira na primeira posicao } #macro MacroEscada(Degraus, Largura, tx) #declare i = 0; union{ #while(i < Degraus) box{< 0-i, 0, 0 >, < -1-i, Largura, 1+i > texture{tx} } #declare i = i+0.5; #end } #end #macro MacroTorcedor(tx) #if (rand(rolete) <0.25) object{ Pessoa texture{tx_azul} } #else #if (rand(rolete) < 0.33) object{ Pessoa texture{tx_vermelha} } #else object{ Pessoa texture{tx_branca} } #end #end #end #macro deslocamento(sd) #declare sd = sd+10; #declare rndmov = rand(seed(sd)); #end #macro MacroSecao(Degraus, Largura, txSecao, txCadeira) #declare i = 0; #declare sd = 0; union{ #while(i < Degraus) deslocamento(sd) // gera um novo numero aleatorio rndmov box{< 0-i, 0, 0 >, < -1-i, Largura, 1+i > texture{txSecao} } #declare j = 0; #while(j < Largura) deslocamento(sd) //gera um novo numero aleatorio rndmov object { cadeira translate<0-i, j, 0+i> texture{txCadeira} } #if (clock > rndmov) // translada o torcedor de acordo com o clock object{ MacroTorcedor(tx_azul) translate<0-i, j, 0+i> translate sin((clock-rndmov)*pi)*z*rand(rolete)} #end #if (clock <= rndmov) // translada o torcedor de acordo com o clock object{ MacroTorcedor(tx_azul) translate<0-i, j, 0+i> translate sin((rndmov-clock)*pi)*z*rand(rolete)} #end #declare j = j+1; #end #declare i = i+1; #end } #end object{ MacroSecao(4, 15, tx_plastico, tx_fosca) } // Parte inferior e mais larga object{ MacroSecao(2, 3, tx_plastico, tx_fosca) translate <-4, 0, 4> } //Parte superior esquerda object{ MacroEscada(2, 2, tx_Escadaria) translate<-4, 3, 4> } //Escada sup. esquerda object{ MacroSecao(2, 5, tx_plastico, tx_fosca) translate <-4, 5, 4> } //Parte superior central object{ MacroEscada(2, 2, tx_Escadaria) translate<-4, 10, 4> } //Escada sup. dir. object{ MacroSecao(2, 3, tx_plastico, tx_fosca) translate <-4, 12, 4> } // Parte sup. dir. #include "camlight.inc" #declare centro_cena = < -1.00, 12.00, 8.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 2.00, 2.00, 2.00 >; #declare dist_camera = 10.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)