// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi // ====================================================================== // C�ERA camera { location < 5.00, 5.00, 5.00 > // Posi�o do observador. right -1.00*x // Largura RELATIVA da imagem. up -1.00*y // Altura RELATIVA da imagem. sky z // Qual dire�o �"para cima"? look_at < 0.00, 0.00, -4.00 > // Para onde a c�era est�apontando. } // Nota: os par�etros "right" e "up" devem ter a mesma propor�o // que os par�etros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source { 10 * < +50.0, +30.0, +50.0 > // Posi�o da l�pada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, -10.0, +10.0 > // Posi�o da l�pada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRI�O DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare raio = 2.000; #declare tinta_A = texture { pigment { color rgb < 1.0, 1.0, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_B = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_C = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare base_peca = cone{ < 0, 0, 0 >,0.5, < 0, 0, 1.5 >,0.00 scale 1 } #declare peao = union{ object{base_peca } sphere { < 0, 0, 1 >, 0.5 scale 1 } texture { tinta_A } } #declare rei = difference{ object{peao } sphere { < 0, 0, 1.5 >, 0.3 scale 1 texture { tinta_B } } texture { tinta_A } } #declare torre = union{ object{base_peca } box {<-0.5,-0.5,1>,< 0.5,0.5,3> scale 0.5} texture { tinta_A } } //caixa representando cada casa do tabuleiro #declare Boxy = box {<0,0,-1>,< 1,1,0> scale 0.15 } //semente #declare semente = seed(4615); #declare maxRei=2; #declare maxTorre=20; #declare maxPeao=80; #declare numRei=0; #declare numTorre=0; #declare numPeao=0; //desenho do tabuleiro #declare DistanceX = 0.15; #declare DistanceY = 0.15; #declare NrX = 0; #declare EndNrX = 25; #declare cont = 0; #while (NrX < EndNrX) #declare NrY = 0; #declare EndNrY = 25; #while (NrY < EndNrY) object{Boxy translate texture{ #if(mod(cont,2) = 0) tinta_A #else tinta_C #end finish {ambient 0.1 diffuse 0.9}} } #declare locked = 0; #if(numPeao < maxPeao) #declare cond = rand(semente); #if(cond < 0.1) object{ peao scale 0.15 translate texture{ #if(mod(cont,2) = 0) tinta_A #else tinta_B #end finish {ambient 0.1 diffuse 0.9}} } #declare numPeao = numPeao + 1; #declare locked = 1; #end #end #if(locked = 0) #if(numTorre < maxTorre) #declare cond = rand(semente); #if(cond < 0.05) object{ torre scale 0.15 translate texture{ #if(mod(cont,2) = 0) tinta_A #else tinta_B #end finish {ambient 0.1 diffuse 0.9}} } #declare numTorre = numTorre + 1; #declare locked = 1; #end #end #end #if(locked = 0) #if(numRei < maxRei) #declare cond = rand(semente); #if(cond < 0.01) object{ rei scale 0.15 translate texture{ #if(mod(cont,2) = 0) tinta_A #else tinta_B #end finish {ambient 0.1 diffuse 0.9}} } #declare numRei = numRei + 1; #declare locked = 1; #end #end #end #declare cont = cont +1; #declare NrY = NrY + 1; #end #declare NrX = NrX + 1; #end