// 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_vermelho = texture{ pigment{ color rgb < 1.00, 0.00, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_cinza = texture{ pigment{ color rgb < 0.80, 0.80, 0.80 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_amarelo = texture{ pigment{ color rgb < 0.80, 0.80, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 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 } #declare TAMANHO_COLUNA=1; #macro escada(altura, degraus, comprimento) #declare cont = 0; #declare TAMANHO_FILA = altura/(degraus + 1); difference { box {<0,0,0>, } #while(cont < degraus) box { <(cont+1)*TAMANHO_FILA, -1, (degraus-cont)*TAMANHO_FILA>, <(cont+2)*TAMANHO_FILA+1, comprimento+1, altura+1> } #declare cont = cont + 1; #end texture { tx_plastico } } #end #macro pessoa_uniforme(tex) union { cone {<0,0,0>,1 <0,0,2> .5 texture{tex}} sphere{<0,0,2.5>, 0.75 texture{tx_amarelo}} } #end #declare cadeira = union { box{<0,0,0>, <.1,.75,1>} box{<0,0,0>, <.75,.75,.1>} texture{tx_vermelho} } #declare roleta = seed(813); #macro secao(altura, fileiras, colunas) union { object{escada(altura, fileiras, colunas*TAMANHO_COLUNA) texture{tx_cinza}} #declare cont_fileira = 0; #declare TAMANHO_FILA = altura/(fileiras + 1); #while(cont_fileira < fileiras) #declare cont_coluna = 0; #while(cont_coluna < colunas) object { cadeira translate < (cont_fileira+1)*TAMANHO_FILA+0.1, cont_coluna*TAMANHO_COLUNA+.25, (fileiras-cont_fileira)*TAMANHO_FILA > } object { #declare valor = rand(roleta); #if(valor < 0.25) pessoa_uniforme(tx_vermelho) #else #if(valor > .75) pessoa_uniforme(tx_xadrez) #else box{<0,0,0>,<0,0,0>} #end #end scale<.25,.25,.25> translate < (cont_fileira+1)*TAMANHO_FILA+0.5, cont_coluna*TAMANHO_COLUNA + 0.5, (fileiras-cont_fileira)*TAMANHO_FILA+.5 > } #declare cont_coluna = cont_coluna + 1; #end #declare cont_fileira = cont_fileira + 1; #end } #end #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #include "eixos.inc" union{ object{ chao translate < 0,0,-5 > texture{ tx_xadrez } } object{secao(4,3,4) translate <0,-13,0>} object{escada(4,12,1) translate<0,-9,0>} object{secao(4,3,3) translate <0,-8,0>} object{escada(4,12,1) translate <0,-5,0>} object{secao(4,3,4) translate <0,-4,0>} object{object{secao(4,3,4) rotate -90*z} translate<5,5,0>} object{object{escada(4,12,1) rotate -90*z} translate<9,5,0>} object{object{secao(4,3,4) rotate -90*z} translate<10,5,0>} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 20.0; #declare dir_camera = < 30.00, -20.00, 14.00 >; #declare dist_camera = 50.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)