#include "colors.inc" #include "textures.inc" #include "rand.inc" #include "metals.inc" // ====================================================================== // CÂMERA camera { location < 15.00, -25.00, 40.00 > // Posição do observador. right <-0.80, 0.00, 0.00> // Largura RELATIVA da imagem. up <0.00, 0.00, 0.60> // Altura RELATIVA da imagem. sky <0.00, 0.00, 1.00> // Qual direção é "para cima"? look_at < 15.00, 10.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 * < -30.0, 18.0, +10.0 > // Posição da lâmpada. color rgb 1.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < 20.0, -20.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 SkyBlue } #declare raio = 2.000; #declare tx_cristal = texture { pigment{color White filter 1} finish { specular 1 roughness 0.001 ambient 0.1 diffuse 0.1 reflection 0.25 } } #declare tx_espelho = texture { pigment { color Gray20 } finish { specular 0.20 roughness 0.05 ambient 0.05 diffuse 0.05 reflection Gray20 } } #declare tx_gold = texture { pigment { color Gold } finish { specular 0.20 roughness 0.55 ambient 0.05 diffuse 0.05 reflection Gold } } #declare no1 = union{ sphere{<0,0,2>, 2 pigment{hexagon color Black color White color Blue scale 0.2} //texture{tx_gold} //hollow } box{<-2,-2,0>,<2,2,2> pigment{hexagon color Black color White color Blue scale 0.2} //texture{tx_gold} } translate<0,0,-0.5> } #declare no2 = torus{1, 1 rotate<90,0,0> translate<0,0,0.5> scale<1,1,2> //pigment { // gradient x //this is the PATTERN_TYPE // color_map { // [0.1 color Red] // [0.3 color Yellow] // [0.6 color Blue] // [0.6 color Green] // [0.8 color Cyan] // } //} pigment{Red_Marble} } #declare no3 = cylinder{<0,0,0>,<0,0,3>,2 translate<0,0,-0.4> pigment{Blue_Agate} } #declare no4 = union{ cylinder {<0,0,0>,<0,0,2>,2 texture{White_Wood}} box {<-1.7,-1.7,0><1.7,1.7,2> texture{White_Wood} } } #declare no5 = lathe { bezier_spline 4, <8,-15>, <1,-5>, <10,0>, <1, 5> pigment { Brown_Agate } scale<0.3,0.3,0.1> rotate<90,0,0> translate<0,0,3> } #declare liaison = cylinder{<1,0,0.5>,<9,0,0.5>,0.5 texture{tx_cristal} interior{ior 1.3} } plane { z, 0 pigment{Jade} //texture{Starfield} //pigment { checker color Black color White scale 5 } finish{ambient 0.7 diffuse 0.7} } #declare linhas = 4; #declare colunas = 4; #declare npackets = 5; #declare semente = seed(0); #declare direcao=1; //pacotes nas linhas #declare i=0; #while (i< linhas-1) #declare j=0; #declare ino = 10*i; #while (j} #declare k=0; #declare indirecao = floor(2*rand(semente)); #declare decalage=0; #declare direcao=1; #if (indirecao=0) #declare decalage=10; #declare direcao=-1; #end #while (k< npackets) #declare choixpack = floor(5*rand(semente)); #declare posi = -2*k; #declare deslocamento = 18*clock; #declare pos = posi+deslocamento; #switch(choixpack) #case (0) #if ((pos>0) & (pos<10)) object{no1 scale<0.2,0.2,0.2> translate} #end #break #case (1) #if ((pos>0) & (pos<10)) object{no2 scale<0.2,0.2,0.2> translate} #end #break #case (2) #if ((pos>0) & (pos<10)) object{no3 scale<0.2,0.2,0.2> translate} #end #break #case (3) #if ((pos>0) & (pos<10)) object{no4 scale<0.2,0.2,0.2> translate} #end #break #end #declare k=k+1; #end #declare j=j+1; #end #declare i=i+1; #end #declare i=0; #while (i< linhas) #declare j=0; #declare ino = 10*i; #while (j translate} #declare k=0; #declare indirecao = floor(2*rand(semente)); #declare decalage=0; #declare direcao=1; #if (indirecao=0) #declare decalage=10; #declare direcao=-1; #end #while (k< npackets) #declare choixpack = floor(5*rand(semente)); #declare posi = -2*k; #declare deslocamento = 18*clock; #declare pos = posi+deslocamento; #switch(choixpack) #case (0) #if ((pos>0) & (pos<10)) object{no1 scale<0.2,0.2,0.2> translate} #end #break #case (1) #if ((pos>0) & (pos<10)) object{no2 scale<0.2,0.2,0.2> translate} #end #break #case (2) #if ((pos>0) & (pos<10)) object{no3 scale<0.2,0.2,0.2> translate} #end #break #case (3) #if ((pos>0) & (pos<10)) object{no4 scale<0.2,0.2,0.2> translate} #end #break #end #declare k=k+1; #end #declare j=j+1; #end #declare i=i+1; #end //#declare semente = seed(0); #declare i=0; #while (i < linhas) #declare j=0; #while (j} #break #case (1) object{no2 translate } #break #case (2) object{no3 translate } #break #case (3) object{no4 translate } #break #case (4) object{no5 translate } #break #end #declare j=j+1; #end #declare i=i+1; #end