// //Felipe Rover RA 016049 - MC930 - TP03 - 28-03-2007 // ====================================================================== // CÂMERA camera { location < 120.00, 120.00, 60.00 > // Posição do observador. up -0.75*x // Largura RELATIVA da imagem. right 1.00*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 50.00, 50.00, 0.00 > // 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, +50.0, +40.0 > // Posição da lâmpada. color rgb 1.5 * < 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.80, 0.80, 1.00 > } #declare raio = 2.000; #declare azul = texture { pigment { color rgb < 0.00, 0.00, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare verde = texture { pigment { color rgb < 0.00, 1.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare vermelho = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare preto = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare branco = texture { pigment { color rgb < 1.00, 1.00, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare cilindro_torre = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 2.50 >, 1.00 texture { vermelho } } #declare caixa_torre = box { < 1.50, -1.50, 3.00 >, < -1.50, 1.50, 2.50 > texture { vermelho } } #declare torre = union { object { caixa_torre } object { cilindro_torre } } #declare peao = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 2.50 >, 1.00 texture { azul } } #declare cilindro_rei = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 4.00 >, 1.00 texture { verde } } #declare caixa_cruz1 = box { < 0.25, -0.25, 5.00 >, < -0.25, 0.25, 4.00 > texture { verde } } #declare caixa_cruz2 = box { < 0.50, -0.50, 4.80 >, < -0.50, 0.50, 4.40 > texture { verde } } #declare rei = union { object { caixa_cruz1 } object { caixa_cruz2 } object { cilindro_rei } } #declare casa_tabu_br = box { < 2.00, -2.00, 0.00 >, < -2.00, 2.00, -0.50 > texture { branco } } #declare casa_tabu_pr = box { < 2.00, -2.00, 0.00 >, < -2.00, 2.00, -0.50 > texture { preto } } // Aqui está a cena, finalmente: #declare i=0; #declare j=0; #declare roleta=seed(51); #while (i<=20) #while (j<=20) #if (mod(i+j,2)=0) object { casa_tabu_br translate < i*4, j*4, 0 > } //decide qual peca coloca #if (int(mod(1000*rand(roleta),10))=0) object { peao translate < i*4, j*4, 0 > } #else #if (int(mod(1000*rand(roleta),10))=1) object { rei translate < i*4, j*4, 0 > } #else #if (int(mod(1000*rand(roleta),10))=1) object { torre translate < i*4, j*4, 0 > } #end #end #end #else object { casa_tabu_pr translate < i*4, j*4, 0 > } //decide qual peca coloca #if (int(mod(1000*rand(roleta),10))=0) object { peao translate < i*4, j*4, 0 > } #else #if (int(mod(1000*rand(roleta),10))=1) object { rei translate < i*4, j*4, 0 > } #else #if (int(mod(1000*rand(roleta),10))=1) object { torre translate < i*4, j*4, 0 > } #end #end #end #end #declare j=j+1; #end #declare i=i+1; #declare j=0; #end